]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/unwind/unwind2_path_lift.ma
partial commit in delayed_updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / unwind / unwind2_path_lift.ma
index ac2166a469d4700d0c8571cbfd58527aa3bc83a1..5af9e1664a4cd60d7b6b24b6ea475a2d10ac0d3b 100644 (file)
 (*                                                                        *)
 (**************************************************************************)
 
-include "delayed_updating/unwind/unwind2_path_eq.ma".
-include "delayed_updating/substitution/lift_path_prelift.ma".
+include "delayed_updating/unwind/unwind2_path.ma".
+include "delayed_updating/unwind/unwind2_rmap_lift.ma".
+include "delayed_updating/substitution/lift_path_structure.ma".
 
-(* UNWIND FOR PATH **********************************************************)
+(* TAILED UNWIND FOR PATH ***************************************************)
 
 (* Constructions with lift_path *********************************************)
 
-lemma lift_unwind2_path_after (p) (f1) (f2):
-      ↑[f2]▼[f1]p = ▼[f2∘f1]p.
-#p @(path_ind_unwind … p) -p // [ #n | #p ] #IH #f1 #f2
-[ <unwind2_path_d_empty <unwind2_path_d_empty
-  <lift_path_d_sn <lift_path_empty //
-| <unwind2_path_L_sn <unwind2_path_L_sn <lift_path_L_sn
-  >tr_compose_push_bi //
-]
+lemma lift_unwind2_path_after (g) (f) (p):
+      ↑[g]▼[f]p = ▼[g∘f]p.
+#g #f * // * [ #k ] #p //
+<unwind2_path_d_dx <unwind2_path_d_dx <lift_path_d_dx
+<lift_path_structure >tr_compose_pap
+/4 width=1 by tr_pap_eq_repl, eq_f2, eq_f/
 qed.
 
-lemma unwind2_path_after_lift (p) (f1) (f2):
-      ▼[f2]↑[f1]p = ▼[f2∘f1]p.
-#p @(path_ind_unwind … p) -p // [ #n #l ] #p #IH #f1 #f2
-[ <lift_path_d_sn <unwind2_path_d_lcons
-  <lift_path_lcons_prelift <unwind2_path_d_lcons >lift_path_lcons_prelift
-  >IH -IH
-  >(unwind2_path_eq_repl … (tr_compose_assoc …))
-  >(unwind2_path_eq_repl … (tr_compose_assoc …))
-  <unwind2_path_after <unwind2_path_after in ⊢ (???%);
-  /3 width=1 by unwind2_path_eq_repl, eq_f/
-| <lift_path_m_sn <unwind2_path_m_sn <unwind2_path_m_sn //
-| <lift_path_L_sn <unwind2_path_L_sn <unwind2_path_L_sn 
-  >tr_compose_push_bi //
+lemma unwind2_lift_path_after (g) (f) (p):
+      ▼[g]↑[f]p = ▼[g∘f]p.
+#g #f * // * [ #k ] #p
+[ <unwind2_path_d_dx <unwind2_path_d_dx
+  <structure_lift_path >tr_compose_pap
+  /4 width=1 by tr_pap_eq_repl, eq_f2, eq_f/
+| <unwind2_path_m_dx <unwind2_path_m_dx //
+| <unwind2_path_L_dx <unwind2_path_L_dx //
+| <unwind2_path_A_dx <unwind2_path_A_dx //
+| <unwind2_path_S_dx <unwind2_path_S_dx //
 ]
 qed.