]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/syntax/path_inner.ma
partial update in delayed_updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / syntax / path_inner.ma
index 0db6d2f65327310a9a7d5d6ba2765fcde15ded56..25678301b5951bb84b6edaf188cbf9d2f05ebbc5 100644 (file)
 include "delayed_updating/syntax/path.ma".
 include "delayed_updating/notation/functions/class_i_0.ma".
 include "ground/lib/subset.ma".
+include "ground/generated/insert_eq_1.ma".
 
 (* INNER CONDITION FOR PATH *************************************************)
 
-definition pic: predicate path ā‰
-           Ī»p. āˆ€q,k. qā—–š—±k = p ā†’ āŠ„
+inductive pic: predicate path ā‰
+| pic_empty: (šž) Ļµ pic
+| pic_m_dx (p): pā—–š—ŗ Ļµ pic
+| pic_L_dx (p): pā—–š—Ÿ Ļµ pic
+| pic_A_dx (p): pā—–š—” Ļµ pic
+| pic_S_dx (p): pā—–š—¦ Ļµ pic
 .
 
 interpretation
   "inner condition (path)"
   'ClassI = (pic).
 
-(* Basic constructions ******************************************************)
-
-lemma pic_empty:
-      (šž) Ļµ šˆ.
-#q #k #H0 destruct
-qed.
-
-lemma pic_m_dx (p):
-      pā—–š—ŗ Ļµ šˆ.
-#p #q #k #H0 destruct
-qed.
-
-lemma pic_L_dx (p):
-      pā—–š—Ÿ Ļµ šˆ.
-#p #q #k #H0 destruct
-qed.
-
-lemma pic_A_dx (p):
-      pā—–š—” Ļµ šˆ.
-#p #q #k #H0 destruct
-qed.
-
-lemma pic_S_dx (p):
-      pā—–š—¦ Ļµ šˆ.
-#p #q #k #H0 destruct
-qed.
-
 (* Basic inversions ********************************************************)
 
 lemma pic_inv_d_dx (p) (k):
       pā—–š—±k Ļµ šˆ ā†’ āŠ„.
-#p #k #H0 @H0 -H0 //
+#p #k @(insert_eq_1 ā€¦ (pā—–š—±k))
+#q * -q [|*: #q ] #H0 destruct
+qed-.
+
+lemma pic_inv_d2_dx (p) (k) (d):
+      pā—–š—±āØk,dā© Ļµ šˆ ā†’ āŠ„.
+#p #k #d @(insert_eq_1 ā€¦ (pā—–š—±āØk,dā©))
+#q * -q [|*: #q ] #H0 destruct
 qed-.
 
 (* Constructions with path_lcons ********************************************)
 
 lemma pic_m_sn (p):
       p Ļµ šˆ ā†’ š—ŗā——p Ļµ šˆ.
-* [| * [ #k ] #p #Hp <list_cons_shift ] //
-[ #_ <list_cons_comm //
-| elim (pic_inv_d_dx ā€¦ Hp)
-]
+#p * -p //
 qed.
 
 lemma pic_L_sn (p):
       p Ļµ šˆ ā†’ š—Ÿā——p Ļµ šˆ.
-* [| * [ #k ] #p #Hp <list_cons_shift ] //
-[ #_ <list_cons_comm //
-| elim (pic_inv_d_dx ā€¦ Hp)
-]
+#p * -p //
 qed.
 
 lemma pic_A_sn (p):
       p Ļµ šˆ ā†’ š—”ā——p Ļµ šˆ.
-* [| * [ #k ] #p #Hp <list_cons_shift ] //
-[ #_ <list_cons_comm //
-| elim (pic_inv_d_dx ā€¦ Hp)
-]
+#p * -p //
 qed.
 
 lemma pic_S_sn (p):
       p Ļµ šˆ ā†’ š—¦ā——p Ļµ šˆ.
-* [| * [ #k ] #p #Hp <list_cons_shift ] //
-[ #_ <list_cons_comm //
-| elim (pic_inv_d_dx ā€¦ Hp)
-]
+#p * -p //
 qed.