X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Fsubstitution%2Flift_prototerm_eq.ma;h=70d41140bd2d28c7c71b5cd993b5a8c4ea2e42b0;hb=7008128d354c6e998a87bc2febe9f86ea714869c;hp=fc3fb3fcf254e39abd1b194cb285f9a545c780a7;hpb=b15b3e2d9e333bf94677ff2731c825da3566c9ec;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm_eq.ma b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm_eq.ma index fc3fb3fcf..70d41140b 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm_eq.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/substitution/lift_prototerm_eq.ma @@ -12,8 +12,9 @@ (* *) (**************************************************************************) +(**) (* reverse include *) include "ground/lib/subset_ext_equivalence.ma". -include "delayed_updating/substitution/lift_after.ma". +include "delayed_updating/substitution/lift_path_eq.ma". include "delayed_updating/substitution/lift_prototerm.ma". (* LIFT FOR PROTOTERM *******************************************************) @@ -21,20 +22,34 @@ include "delayed_updating/substitution/lift_prototerm.ma". (* Constructions with subset_equivalence ************************************) lemma lift_term_eq_repl_sn (f1) (f2) (t): - f1 ≗ f2 → ↑[f1]t ⇔ ↑[f2]t. + f1 ≗ f2 → 🠡[f1]t ⇔ 🠡[f2]t. /3 width=1 by subset_equivalence_ext_f1_exteq, lift_path_eq_repl/ qed. lemma lift_term_eq_repl_dx (f) (t1) (t2): - t1 ⇔ t2 → ↑[f]t1 ⇔ ↑[f]t2. + t1 ⇔ t2 → 🠡[f]t1 ⇔ 🠡[f]t2. /2 width=1 by subset_equivalence_ext_f1_bi/ qed. -lemma lift_term_after (f1) (f2) (t): - ↑[f2]↑[f1]t ⇔ ↑[f2∘f1]t. -#f1 #f2 #t @subset_eq_trans -[ -| @subset_inclusion_ext_f1_compose -| @subset_equivalence_ext_f1_exteq /2 width=5/ -] -qed. +lemma lift_term_grafted_sn (f) (t) (p): + 🠡[🠢[f]p](t⋔p) ⊆ (🠡[f]t)⋔(🠡[f]p). +#f #t #p #q * #r #Hr #H0 destruct +/2 width=3 by ex2_intro/ +qed-. + +lemma lift_term_grafted_dx (f) (t) (p): + (🠡[f]t)⋔(🠡[f]p) ⊆ 🠡[🠢[f]p](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_grafted (f) (t) (p): + 🠡[🠢[f]p](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): + 🠡[🠢[f]p](t⋔(p◖𝗦)) ⇔ (🠡[f]t)⋔((🠡[f]p)◖𝗦). +// qed.