]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm_eq.ma
update in delayed updating
[helm.git] / matita / matita / contribs / lambdadelta / delayed_updating / substitution / lift_prototerm_eq.ma
index 55b271f8bfdb3bc77938b0c86a7860e7234455d7..afe2ddd0178edbbbc210c906fec0238f3b94ef4c 100644 (file)
@@ -13,7 +13,7 @@
 (**************************************************************************)
 
 include "ground/lib/subset_ext_equivalence.ma".
-include "delayed_updating/substitution/lift_after.ma".
+include "delayed_updating/substitution/lift_path_after.ma".
 include "delayed_updating/substitution/lift_prototerm.ma".
 
 (* LIFT FOR PROTOTERM *******************************************************)
@@ -39,19 +39,26 @@ lemma lift_term_after (f1) (f2) (t):
 ]
 qed.
 
-lemma lift_term_id_sn (t):
-      t ⊆ ↑[𝐢]t.
-#t #p #Hp
->(lift_path_id p)
-/2 width=1 by in_comp_lift_bi/
+lemma lift_term_grafted_sn (f) (t) (p):
+      ↑[↑[p]f](t⋔p) ⊆ (↑[f]t)⋔(↑[f]p).
+#f #t #p #q * #r #Hr #H0 destruct
+@(ex2_intro … Hr) -Hr
+<lift_path_append_sn //
 qed-.
 
-lemma lift_term_id_dx (t):
-      ↑[𝐢]t ⊆ t.
-#t #p * #q #Hq #H destruct //
+lemma lift_term_grafted_dx (f) (t) (p):
+      (↑[f]t)⋔(↑[f]p) ⊆ ↑[↑[p]f](t⋔p).
+#f #t #p #q * #r #Hr #H0
+elim (lift_path_inv_append_sn … (sym_eq … H0)) -H0
+#p0 #q0 #Hp0 #Hq0 #H0 destruct
+lapply (lift_path_inj … Hp0) -Hp0 #Hp0 destruct
+/2 width=1 by in_comp_lift_path_term/
 qed-.
 
-lemma lift_term_id (t):
-      t ⇔ ↑[𝐢]t.
-/3 width=2 by lift_term_id_dx, lift_term_id_sn, conj/
-qed.
+lemma lift_term_grafted (f) (t) (p):
+      ↑[↑[p]f](t⋔p) ⇔ (↑[f]t)⋔(↑[f]p).
+/3 width=1 by lift_term_grafted_sn, lift_term_grafted_dx, conj/ qed.
+
+lemma lift_term_grafted_S (f) (t) (p):
+      ↑[↑[p]f](t⋔(p◖𝗦)) ⇔ (↑[f]t)⋔((↑[f]p)◖𝗦).
+// qed.