X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fetc%2Fsta%2Fsta_lift.etc;h=db7833ca474bc36d604ce1277ccd21ecb38877d2;hb=fdb2c62b58006b82c015ba70b494d50c7860e28f;hp=c9fbda0141652ffa9c662cf55f273fa30ad27bda;hpb=4aa431513ffa0ce0accf81e6e9ea4b9314d468e3;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/etc/sta/sta_lift.etc b/matita/matita/contribs/lambdadelta/basic_2/etc/sta/sta_lift.etc index c9fbda014..db7833ca4 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/etc/sta/sta_lift.etc +++ b/matita/matita/contribs/lambdadelta/basic_2/etc/sta/sta_lift.etc @@ -12,7 +12,7 @@ (* *) (**************************************************************************) -include "basic_2/substitution/ldrop_ldrop.ma". +include "basic_2/relocation/ldrop_ldrop.ma". include "basic_2/static/sta.ma". (* STATIC TYPE ASSIGNMENT ON TERMS ******************************************) @@ -20,101 +20,98 @@ include "basic_2/static/sta.ma". (* Properties on relocation *************************************************) (* Basic_1: was: sty0_lift *) -lemma sta_lift: ∀h,L1,T1,U1. ⦃h, L1⦄ ⊢ T1 • U1 → ∀L2,d,e. ⇩[d, e] L2 ≡ L1 → - ∀T2. ⇧[d, e] T1 ≡ T2 → ∀U2. ⇧[d, e] U1 ≡ U2 → ⦃h, L2⦄ ⊢ T2 • U2. -#h #L1 #T1 #U1 #H elim H -L1 -T1 -U1 -[ #L1 #k #L2 #d #e #HL21 #X1 #H1 #X2 #H2 +lemma sta_lift: ∀h,G. l_liftable (sta h G). +#h #G #L1 #T1 #U1 #H elim H -G -L1 -T1 -U1 +[ #G #L1 #k #L2 #d #e #HL21 #X1 #H1 #X2 #H2 >(lift_inv_sort1 … H1) -X1 >(lift_inv_sort1 … H2) -X2 // -| #L1 #K1 #V1 #W1 #W #i #HLK1 #_ #HW1 #IHVW1 #L2 #d #e #HL21 #X #H #U2 #HWU2 +| #G #L1 #K1 #V1 #W1 #W #i #HLK1 #_ #HW1 #IHVW1 #L2 #d #e #HL21 #X #H #U2 #HWU2 elim (lift_inv_lref1 … H) * #Hid #H destruct - [ elim (lift_trans_ge … HW1 … HWU2 ?) -W // #W2 #HW12 #HWU2 - elim (ldrop_trans_le … HL21 … HLK1 ?) -L1 /2 width=2/ #X #HLK2 #H - elim (ldrop_inv_skip2 … H ?) -H /2 width=1/ -Hid #K2 #V2 #HK21 #HV12 #H destruct + [ elim (lift_trans_ge … HW1 … HWU2) -W // #W2 #HW12 #HWU2 + elim (ldrop_trans_le … HL21 … HLK1) -L1 /2 width=2/ #X #HLK2 #H + elim (ldrop_inv_skip2 … H) -H /2 width=1/ -Hid #K2 #V2 #HK21 #HV12 #H destruct /3 width=8/ | lapply (lift_trans_be … HW1 … HWU2 ? ?) -W // /2 width=1/ #HW1U2 lapply (ldrop_trans_ge … HL21 … HLK1 ?) -L1 // -Hid /3 width=8/ ] -| #L1 #K1 #W1 #V1 #W #i #HLK1 #_ #HW1 #IHWV1 #L2 #d #e #HL21 #X #H #U2 #HWU2 +| #G #L1 #K1 #W1 #V1 #W #i #HLK1 #_ #HW1 #IHWV1 #L2 #d #e #HL21 #X #H #U2 #HWU2 elim (lift_inv_lref1 … H) * #Hid #H destruct - [ elim (lift_trans_ge … HW1 … HWU2 ?) -W // (lift_inv_sort2 … H) -X /2 width=3/ -| #L2 #K2 #V2 #W2 #W #i #HLK2 #HVW2 #HW2 #IHVW2 #L1 #d #e #HL21 #X #H +| #G #L2 #K2 #V2 #W2 #W #i #HLK2 #HVW2 #HW2 #IHVW2 #L1 #d #e #HL21 #X #H elim (lift_inv_lref2 … H) * #Hid #H destruct [ -HVW2 | -IHVW2 ] - [ elim (ldrop_conf_lt … HL21 … HLK2 ?) -L2 // #K1 #V1 #HLK1 #HK21 #HV12 - elim (IHVW2 … HK21 … HV12) -K2 -V2 #W1 #HVW1 #HW12 - elim (lift_trans_le … HW12 … HW2 ?) -W2 // >minus_plus minus_plus minus_minus_m_m /2 width=1/ /3 width=6/ - | minus_minus_m_m /2 width=1/ /3 width=8/ + | minus_plus minus_plus minus_minus_m_m /2 width=1/ /3 width=6/ - | minus_minus_m_m /2 width=1/ /3 width=8/ + |