X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fmultiple%2Fllor_alt.ma;h=0b634cbf955e4949cf4b1b5cb1e501cc7f64671c;hb=52e675f555f559c047d5449db7fc89a51b977d35;hp=430df9936fb6d58c8ceb66ab40a2706ac381fd66;hpb=75fac6d60f67a4dfa38ea6c2cc45a18eda5d8996;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/multiple/llor_alt.ma b/matita/matita/contribs/lambdadelta/basic_2/multiple/llor_alt.ma index 430df9936..0b634cbf9 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/multiple/llor_alt.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/multiple/llor_alt.ma @@ -25,23 +25,23 @@ lemma llor_tail_frees: ∀L1,L2,L,U,d. L1 ⩖[U, d] L2 ≡ L → d ≤ yinj (|L1 #L1 #L2 #L #U #d * #HL12 #HL1 #IH #Hd #I1 #W1 #HU #I2 #W2 @and3_intro [1,2: >ltail_length /2 width=1 by le_S_S/ ] #J1 #J2 #J #K1 #K2 #K #V1 #V2 #V #i #HLK1 #HLK2 #HLK -lapply (ldrop_fwd_length_lt2 … HLK1) >ltail_length #H +lapply (drop_fwd_length_lt2 … HLK1) >ltail_length #H lapply (lt_plus_SO_to_le … H) -H #H elim (le_to_or_lt_eq … H) -H #H -[ elim (ldrop_O1_lt (Ⓕ) … H) #Z1 #Y1 #X1 #HLY1 - elim (ldrop_O1_lt (Ⓕ) L2 i) // #Z2 #Y2 #X2 #HLY2 - elim (ldrop_O1_lt (Ⓕ) L i) // #Z #Y #X #HLY - lapply (ldrop_O1_inv_append1_le … HLK1 … HLY1) /2 width=1 by lt_to_le/ -HLK1 normalize #H destruct - lapply (ldrop_O1_inv_append1_le … HLK2 … HLY2) /2 width=1 by lt_to_le/ -HLK2 normalize #H destruct - lapply (ldrop_O1_inv_append1_le … HLK … HLY) /2 width=1 by lt_to_le/ -HLK normalize #H destruct +[ elim (drop_O1_lt (Ⓕ) … H) #Z1 #Y1 #X1 #HLY1 + elim (drop_O1_lt (Ⓕ) L2 i) // #Z2 #Y2 #X2 #HLY2 + elim (drop_O1_lt (Ⓕ) L i) // #Z #Y #X #HLY + lapply (drop_O1_inv_append1_le … HLK1 … HLY1) /2 width=1 by lt_to_le/ -HLK1 normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK2 … HLY2) /2 width=1 by lt_to_le/ -HLK2 normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK … HLY) /2 width=1 by lt_to_le/ -HLK normalize #H destruct elim (IH … HLY1 HLY2 HLY) -IH -HLY1 -HLY2 -HLY * [ /3 width=1 by and3_intro, or3_intro0/ | /6 width=2 by frees_inv_append, lt_to_le, or3_intro1, and3_intro/ | /5 width=1 by frees_append, lt_to_le, or3_intro2, and4_intro/ ] | -IH -HLK1 destruct - lapply (ldrop_O1_inv_append1_le … HLK2 … (⋆) ?) // -HLK2 normalize #H destruct - lapply (ldrop_O1_inv_append1_le … HLK … (⋆) ?) // -HLK normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK2 … (⋆) ?) // -HLK2 normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK … (⋆) ?) // -HLK normalize #H destruct /3 width=1 by or3_intro2, and4_intro/ ] qed. @@ -52,23 +52,23 @@ lemma llor_tail_cofrees: ∀L1,L2,L,U,d. L1 ⩖[U, d] L2 ≡ L → #L1 #L2 #L #U #d * #HL12 #HL1 #IH #I1 #W1 #HU #I2 #W2 @and3_intro [1,2: >ltail_length /2 width=1 by le_S_S/ ] #J1 #J2 #J #K1 #K2 #K #V1 #V2 #V #i #HLK1 #HLK2 #HLK -lapply (ldrop_fwd_length_lt2 … HLK1) >ltail_length #H +lapply (drop_fwd_length_lt2 … HLK1) >ltail_length #H lapply (lt_plus_SO_to_le … H) -H #H elim (le_to_or_lt_eq … H) -H #H -[ elim (ldrop_O1_lt (Ⓕ) … H) #Z1 #Y1 #X1 #HLY1 - elim (ldrop_O1_lt (Ⓕ) L2 i) // #Z2 #Y2 #X2 #HLY2 - elim (ldrop_O1_lt (Ⓕ) L i) // #Z #Y #X #HLY - lapply (ldrop_O1_inv_append1_le … HLK1 … HLY1) /2 width=1 by lt_to_le/ -HLK1 normalize #H destruct - lapply (ldrop_O1_inv_append1_le … HLK2 … HLY2) /2 width=1 by lt_to_le/ -HLK2 normalize #H destruct - lapply (ldrop_O1_inv_append1_le … HLK … HLY) /2 width=1 by lt_to_le/ -HLK normalize #H destruct +[ elim (drop_O1_lt (Ⓕ) … H) #Z1 #Y1 #X1 #HLY1 + elim (drop_O1_lt (Ⓕ) L2 i) // #Z2 #Y2 #X2 #HLY2 + elim (drop_O1_lt (Ⓕ) L i) // #Z #Y #X #HLY + lapply (drop_O1_inv_append1_le … HLK1 … HLY1) /2 width=1 by lt_to_le/ -HLK1 normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK2 … HLY2) /2 width=1 by lt_to_le/ -HLK2 normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK … HLY) /2 width=1 by lt_to_le/ -HLK normalize #H destruct elim (IH … HLY1 HLY2 HLY) -IH -HLY1 -HLY2 -HLY * [ /3 width=1 by and3_intro, or3_intro0/ | /6 width=2 by frees_inv_append, lt_to_le, or3_intro1, and3_intro/ | /5 width=1 by frees_append, lt_to_le, or3_intro2, and4_intro/ ] | -IH -HLK2 destruct - lapply (ldrop_O1_inv_append1_le … HLK1 … (⋆) ?) // -HLK1 normalize #H destruct - lapply (ldrop_O1_inv_append1_le … HLK … (⋆) ?) // -HLK normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK1 … (⋆) ?) // -HLK1 normalize #H destruct + lapply (drop_O1_inv_append1_le … HLK … (⋆) ?) // -HLK normalize #H destruct /4 width=1 by or3_intro1, and3_intro/ ] qed.