X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fsyntax%2Fvoids_length.ma;h=60d41924ba064ea6e45437c45da4cc49f4d42e84;hb=a4998de03fae0f36cde8abf17f45ea115845e849;hp=30738ee24709f3b42e7ddb6d41bf41de4c0b1e42;hpb=1ed30536a512158b064802524175996b01c3abdc;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/syntax/voids_length.ma b/matita/matita/contribs/lambdadelta/basic_2/syntax/voids_length.ma index 30738ee24..60d41924b 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/syntax/voids_length.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/syntax/voids_length.ma @@ -19,25 +19,40 @@ include "basic_2/syntax/voids.ma". (* Forward lemmas with length for local environments ************************) +lemma voids_fwd_length_le_sn: ∀L1,L2,n1,n2. ⓧ*[n1]L1 ≋ ⓧ*[n2]L2 → n1 ≤ |L1|. +#L1 #L2 #n1 #n2 #H elim H -L1 -L2 -n1 -n2 normalize +/2 width=1 by le_S_S/ +qed-. + +lemma voids_fwd_length_le_dx: ∀L1,L2,n1,n2. ⓧ*[n1]L1 ≋ ⓧ*[n2]L2 → n2 ≤ |L2|. +#L1 #L2 #n1 #n2 #H elim H -L1 -L2 -n1 -n2 normalize +/2 width=1 by le_S_S/ +qed-. + lemma voids_fwd_length: ∀L1,L2,n1,n2. ⓧ*[n1]L1 ≋ ⓧ*[n2]L2 → |L1| + n2 = |L2| + n1. -#L1 #L2 #n1 #n2 #H elim H -L1 -L2 -n1 -n2 normalize // -#I1 #I2 #K1 #K2 #V #n #_ #IH - -(* Main forward properties with length for local environments ***************) - -theorem voids_inj_length: ∀n1,n2,L1,L2. ⓧ*[n1]L1 = ⓧ*[n2]L2 → - |L1| = |L2| → n1 = n2 ∧ L1 = L2. -#n1 elim n1 -n1 -[ * /2 width=1 by conj/ #n2 #L1 #L2 | #n1 #IH * [ | #n2 ] #L1 #L2 ] -[ plus_n_Sm #H0 +lapply (plus2_inv_le_sn … H0 HL12) -H0 -HL12 #H0 +elim (le_inv_S1 … H0) -H0 #m2 #Hm2 #H0 destruct +/3 width=4 by voids_inv_void_dx, ex3_intro/ qed-.