X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fstatic%2Flfeq_lfeq.ma;h=8fd1f2f4f05e141a1c27902a9edcb84923029c53;hb=e8971d3db8935436e6dddc27fe1ae168c7f3b315;hp=677f53973585f56aa2be1b980877a53e12128936;hpb=f82a900182012664dd58eb1d8ab012c2a6f541ab;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/static/lfeq_lfeq.ma b/matita/matita/contribs/lambdadelta/basic_2/static/lfeq_lfeq.ma index 677f53973..8fd1f2f4f 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/static/lfeq_lfeq.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/static/lfeq_lfeq.ma @@ -12,44 +12,15 @@ (* *) (**************************************************************************) -include "basic_2/relocation/lreq_lreq.ma". include "basic_2/static/lfxs_lfxs.ma". -include "basic_2/static/lfeq_lreq.ma". +include "basic_2/static/lfeq.ma". -(* EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES *******************) +(* SYNTACTIC EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES *********) -(* Main properties **********************************************************) +(* Advanced forward lemmas **************************************************) -theorem lfeq_bind: ∀p,I,L1,L2,V1,V2,T. - L1 ≡[V1] L2 → L1.ⓑ{I}V1 ≡[T] L2.ⓑ{I}V2 → - L1 ≡[ⓑ{p,I}V1.T] L2. -/2 width=2 by lfxs_bind/ qed. - -theorem lfeq_flat: ∀I,L1,L2,V,T. L1 ≡[V] L2 → L1 ≡[T] L2 → - L1 ≡[ⓕ{I}V.T] L2. -/2 width=1 by lfxs_flat/ qed. - -(* Note: /2 width=3 by lfeq_lfxs_trans/ *) -theorem lfeq_trans: ∀T. Transitive … (lfeq T). -#T #L1 #L * #f1 #Hf1 #HL1 #L2 * #f2 #Hf2 #HL2 -lapply (frees_lreq_conf … Hf1 … HL1) #H0 -lapply (frees_mono … Hf2 … H0) -Hf2 -H0 -/4 width=7 by lreq_trans, lexs_eq_repl_back, ex2_intro/ -qed-. - -theorem lfeq_canc_sn: ∀T. left_cancellable … (lfeq T). -/3 width=3 by lfeq_trans, lfeq_sym/ qed-. - -theorem lfeq_canc_dx: ∀T. right_cancellable … (lfeq T). -/3 width=3 by lfeq_trans, lfeq_sym/ qed-. - -(* Advanced properies on negated lazy equivalence *****************************) - -(* Note: for use in auto, works with /4 width=8/ so lfeq_canc_sn is preferred *) -lemma lfeq_nlfeq_trans: ∀T,L1,L. L1 ≡[T] L → - ∀L2. (L ≡[T] L2 → ⊥) → (L1 ≡[T] L2 → ⊥). -/3 width=3 by lfeq_canc_sn/ qed-. - -lemma nlfeq_lfeq_div: ∀T,L2,L. L2 ≡[T] L → - ∀L1. (L1 ≡[T] L → ⊥) → (L1 ≡[T] L2 → ⊥). -/3 width=3 by lfeq_trans/ qed-. +(* Note: the proof should may invoke lfeq_transitive_inv_lfxs *) +lemma lfeq_lfxs_trans: ∀R. c_reflexive … R → lfeq_transitive R → + ∀L1,L,T. L1 ≡[T] L → + ∀L2. L ⪤*[R, T] L2 → L1 ⪤*[R, T] L2. +/3 width=9 by lfxs_trans_gen/ qed-.