]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_eq.ma
update in delayed updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / substitution / lift_eq.ma
index fad4995de2f7f7af8fa789a1cfb7308d4c8a7396..1e9b2789b04c77be715ef401927c95ea33b91567 100644 (file)
 (**************************************************************************)
 
 include "delayed_updating/substitution/lift.ma".
-(*
-include "ground/relocation/tr_uni_compose.ma".
-include "ground/relocation/tr_compose_compose.ma".
-include "ground/relocation/tr_compose_eq.ma".
-*)
 include "ground/relocation/tr_pap_eq.ma".
 include "ground/relocation/tr_pn_eq.ma".
-include "ground/lib/stream_tls_eq.ma".
 
 (* LIFT FOR PATH ***********************************************************)
 
@@ -39,7 +33,7 @@ lemma lift_eq_repl (A) (p) (k1) (k2):
 #k1 #k2 #Hk #f1 #f2 #Hf
 [ <lift_empty <lift_empty /2 width=1 by/
 | <lift_d_sn <lift_d_sn <(tr_pap_eq_repl ā€¦ Hf)
-  /3 width=3 by stream_tls_eq_repl, compose_repl_fwd_sn/
+  /3 width=1 by stream_eq_refl/
 | /3 width=1 by/
 | /3 width=1 by tr_push_eq_repl/
 | /3 width=1 by/
@@ -92,7 +86,7 @@ lemma lift_path_lcons (f) (p) (l):
 qed.
 
 lemma lift_path_d_sn (f) (p) (n):
-      (š—±(f@āØnā©)ā——ā†‘[ā‡‚*[n]f]p) = ā†‘[f](š—±nā——p).
+      (š—±(f@āØnā©)ā——ā†‘[š¢]p) = ā†‘[f](š—±nā——p).
 // qed.
 
 lemma lift_path_m_sn (f) (p):
@@ -110,6 +104,53 @@ lemma lift_path_A_sn (f) (p):
 lemma lift_path_S_sn (f) (p):
       (š—¦ā——ā†‘[f]p) = ā†‘[f](š—¦ā——p).
 // qed.
+
+lemma lift_path_id (p):
+      p = ā†‘[š¢]p.
+#p elim p -p //
+* [ #n ] #p #IH //
+[ <lift_path_d_sn //
+| <lift_path_L_sn //
+]
+qed.
+
+lemma lift_path_append (p2) (p1) (f):
+      (ā†‘[f]p1)ā—(ā†‘[ā†‘[p1]f]p2) = ā†‘[f](p1ā—p2).
+#p2 #p1 elim p1 -p1 //
+* [ #n1 ] #p1 #IH #f
+[ <lift_path_d_sn <lift_path_d_sn <IH //
+| <lift_path_m_sn <lift_path_m_sn <IH //
+| <lift_path_L_sn <lift_path_L_sn <IH //
+| <lift_path_A_sn <lift_path_A_sn <IH //
+| <lift_path_S_sn <lift_path_S_sn <IH //
+]
+qed.
+
+lemma lift_path_d_dx (n) (p) (f):
+      (ā†‘[f]p)ā—–š—±((ā†‘[p]f)@āØnā©) = ā†‘[f](pā—–š—±n).
+#n #p #f <lift_path_append //
+qed.
+
+lemma lift_path_m_dx (p) (f):
+      (ā†‘[f]p)ā—–š—ŗ = ā†‘[f](pā—–š—ŗ).
+#p #f <lift_path_append //
+qed.
+
+lemma lift_path_L_dx (p) (f):
+      (ā†‘[f]p)ā—–š—Ÿ = ā†‘[f](pā—–š—Ÿ).
+#p #f <lift_path_append //
+qed.
+
+lemma lift_path_A_dx (p) (f):
+      (ā†‘[f]p)ā—–š—” = ā†‘[f](pā—–š—”).
+#p #f <lift_path_append //
+qed.
+
+lemma lift_path_S_dx (p) (f):
+      (ā†‘[f]p)ā—–š—¦ = ā†‘[f](pā—–š—¦).
+#p #f <lift_path_append //
+qed.
+
 (* COMMENT 
 
 (* Advanced constructions with proj_rmap and stream_tls *********************)