X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fstatic%2Flfdeq_length.ma;h=40f2812cc59304a1581275e68e44788c04acaa41;hb=5c186c72f508da0849058afeecc6877cd9ed6303;hp=1c7dee495ad75b64c1315c201efe5bd938af8df9;hpb=9323611e3819c1382b872a7ada00264991f36217;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_length.ma b/matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_length.ma index 1c7dee495..40f2812cc 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_length.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/static/lfdeq_length.ma @@ -12,16 +12,16 @@ (* *) (**************************************************************************) -include "basic_2/syntax/lveq_length.ma". include "basic_2/relocation/lifts_tdeq.ma". include "basic_2/static/lfxs_length.ma". +include "basic_2/static/lfxs_fsle.ma". include "basic_2/static/lfdeq.ma". (* DEGREE-BASED EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES ******) -(* Advanved properties ******************************************************) +(* Advanved properties with free variables inclusion ************************) -lemma lfdeq_fle_comp: ∀h,o. lfxs_fle_compatible (cdeq h o). +lemma lfdeq_fsge_comp (h) (o): lfxs_fsge_compatible (cdeq h o). #h #o #L1 #L2 #T * #f1 #Hf1 #HL12 lapply (frees_lfdeq_conf h o … Hf1 … HL12) lapply (lexs_fwd_length … HL12) @@ -30,15 +30,26 @@ qed-. (* Properties with length for local environments ****************************) +(* Basic_2A1: uses: lleq_sort *) +lemma lfdeq_sort_length (h) (o): ∀L1,L2. |L1| = |L2| → ∀s. L1 ≛[h, o, ⋆s] L2. +/2 width=1 by lfxs_sort_length/ qed. + +(* Basic_2A1: uses: lleq_gref *) +lemma lfdeq_gref_length (h) (o): ∀L1,L2. |L1| = |L2| → ∀l. L1 ≛[h, o, §l] L2. +/2 width=1 by lfxs_gref_length/ qed. + +lemma lfdeq_unit_length (h) (o): ∀L1,L2. |L1| = |L2| → + ∀I. L1.ⓤ{I} ≛[h, o, #0] L2.ⓤ{I}. +/2 width=1 by lfxs_unit_length/ qed. + (* Basic_2A1: uses: lleq_lift_le lleq_lift_ge *) -lemma lfdeq_lifts_bi: ∀L1,L2. |L1| = |L2| → ∀h,o,K1,K2,T. K1 ≛[h, o, T] K2 → - ∀b,f. ⬇*[b, f] L1 ≡ K1 → ⬇*[b, f] L2 ≡ K2 → - ∀U. ⬆*[f] T ≡ U → L1 ≛[h, o, U] L2. +lemma lfdeq_lifts_bi (h) (o): ∀L1,L2. |L1| = |L2| → ∀K1,K2,T. K1 ≛[h, o, T] K2 → + ∀b,f. ⬇*[b, f] L1 ≘ K1 → ⬇*[b, f] L2 ≘ K2 → + ∀U. ⬆*[f] T ≘ U → L1 ≛[h, o, U] L2. /3 width=9 by lfxs_lifts_bi, tdeq_lifts_sn/ qed-. (* Forward lemmas with length for local environments ************************) (* Basic_2A1: lleq_fwd_length *) -lemma lfdeq_fwd_length: ∀h,o,L1,L2. ∀T:term. L1 ≛[h, o, T] L2 → |L1| = |L2|. +lemma lfdeq_fwd_length (h) (o): ∀L1,L2. ∀T:term. L1 ≛[h, o, T] L2 → |L1| = |L2|. /2 width=3 by lfxs_fwd_length/ qed-. -