]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift.ma
update in delayed_updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / substitution / lift.ma
index 0dbb6043a4cb9dbe8f4571f40bff6194814547fa..fa63286846e697621e2ac313b739825204abc2a5 100644 (file)
@@ -29,14 +29,15 @@ match p with
 [ list_empty     โ‡’ k f (๐ž)
 | list_lcons l q โ‡’
   match l with
-  [ label_node_d n โ‡’
+  [ label_d n โ‡’
     match q with
     [ list_empty     โ‡’ lift_gen (A) (ฮปg,p. k g (๐—ฑ(f@โจnโฉ)โ——p)) (fโˆ˜๐ฎโจnโฉ) q
     | list_lcons _ _ โ‡’ lift_gen (A) k (fโˆ˜๐ฎโจnโฉ) q
     ]
-  | label_edge_L   โ‡’ lift_gen (A) (ฮปg,p. k g (๐—Ÿโ——p)) (โซฏf) q
-  | label_edge_A   โ‡’ lift_gen (A) (ฮปg,p. k g (๐—”โ——p)) f q
-  | label_edge_S   โ‡’ lift_gen (A) (ฮปg,p. k g (๐—ฆโ——p)) f q
+  | label_m   โ‡’ lift_gen (A) k f q
+  | label_L   โ‡’ lift_gen (A) (ฮปg,p. k g (๐—Ÿโ——p)) (โซฏf) q
+  | label_A   โ‡’ lift_gen (A) (ฮปg,p. k g (๐—”โ——p)) f q
+  | label_S   โ‡’ lift_gen (A) (ฮปg,p. k g (๐—ฆโ——p)) f q
   ]
 ].
 
@@ -72,6 +73,10 @@ lemma lift_d_lcons_sn (A) (k) (p) (l) (n) (f):
       โ†‘โจk, fโˆ˜๐ฎโจninj nโฉ, lโ——pโฉ = โ†‘{A}โจk, f, ๐—ฑnโ——lโ——pโฉ.
 // qed.
 
+lemma lift_m_sn (A) (k) (p) (f):
+      โ†‘โจk, f, pโฉ = โ†‘{A}โจk, f, ๐—บโ——pโฉ.
+// qed.
+
 lemma lift_L_sn (A) (k) (p) (f):
       โ†‘โจ(ฮปg,p. k g (๐—Ÿโ——p)), โซฏf, pโฉ = โ†‘{A}โจk, f, ๐—Ÿโ——pโฉ.
 // qed.
@@ -98,12 +103,20 @@ lemma lift_path_d_lcons_sn (f) (p) (l) (n):
       โ†‘[fโˆ˜๐ฎโจninj nโฉ](lโ——p) = โ†‘[f](๐—ฑnโ——lโ——p).
 // qed.
 
+lemma lift_path_m_sn (f) (p):
+      โ†‘[f]p = โ†‘[f](๐—บโ——p).
+// qed.
+
 (* Basic constructions with proj_rmap ***************************************)
 
 lemma lift_rmap_d_sn (f) (p) (n):
       โ†‘[p](fโˆ˜๐ฎโจninj nโฉ) = โ†‘[๐—ฑnโ——p]f.
 #f * // qed.
 
+lemma lift_rmap_m_sn (f) (p):
+      โ†‘[p]f = โ†‘[๐—บโ——p]f.
+// qed.
+
 lemma lift_rmap_L_sn (f) (p):
       โ†‘[p](โซฏf) = โ†‘[๐—Ÿโ——p]f.
 // qed.
@@ -121,7 +134,8 @@ lemma lift_rmap_S_sn (f) (p):
 lemma lift_rmap_append (p2) (p1) (f):
       โ†‘[p2]โ†‘[p1]f = โ†‘[p1โ—p2]f.
 #p2 #p1 elim p1 -p1 // * [ #n ] #p1 #IH #f //
-[ <lift_rmap_A_sn <lift_rmap_A_sn //
+[ <lift_rmap_m_sn <lift_rmap_m_sn //
+| <lift_rmap_A_sn <lift_rmap_A_sn //
 | <lift_rmap_S_sn <lift_rmap_S_sn //
 ]
 qed.
@@ -132,11 +146,12 @@ lemma path_ind_lift (Q:predicate โ€ฆ):
       Q (๐ž) โ†’
       (โˆ€n. Q (๐ž) โ†’ Q (๐—ฑnโ——๐ž)) โ†’
       (โˆ€n,l,p. Q (lโ——p) โ†’ Q (๐—ฑnโ——lโ——p)) โ†’
+      (โˆ€p. Q p โ†’ Q (๐—บโ——p)) โ†’
       (โˆ€p. Q p โ†’ Q (๐—Ÿโ——p)) โ†’
       (โˆ€p. Q p โ†’ Q (๐—”โ——p)) โ†’
       (โˆ€p. Q p โ†’ Q (๐—ฆโ——p)) โ†’
       โˆ€p. Q p.
-#Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #p
+#Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #p
 elim p -p [| * [ #n * ] ]
 /2 width=1 by/
 qed-.