X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fdynamic%2Fsnv_ssta.ma;h=68ca47869faf92ef470910ea3244f9b8a2c95308;hb=90ee1e85245752414b93826aabe388409571187a;hp=f6d753d22437d2353792872760b626f6de3ede14;hpb=08cb57944c0df08611d4f35d286e46c0d13e4813;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ssta.ma b/matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ssta.ma index f6d753d22..68ca47869 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ssta.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ssta.ma @@ -12,6 +12,7 @@ (* *) (**************************************************************************) +include "basic_2/dynamic/snv_lift.ma". include "basic_2/dynamic/snv_cpcs.ma". (* STRATIFIED NATIVE VALIDITY FOR TERMS *************************************) @@ -19,8 +20,8 @@ include "basic_2/dynamic/snv_cpcs.ma". (* Properties on stratified static type assignment for terms ****************) fact snv_ssta_aux: ∀h,g,L0,T0. - (∀L1,T1. h ⊢ ⦃L0, T0⦄ >[g] ⦃L1, T1⦄ → IH_snv_ltpr_tpr h g L1 T1) → - (∀L1,T1. h ⊢ ⦃L0, T0⦄ >[g] ⦃L1, T1⦄ → IH_ssta_ltpr_tpr h g L1 T1) → + (∀L1,T1. h ⊢ ⦃L0, T0⦄ >[g] ⦃L1, T1⦄ → IH_snv_cpr_lpr h g L1 T1) → + (∀L1,T1. h ⊢ ⦃L0, T0⦄ >[g] ⦃L1, T1⦄ → IH_ssta_cpr_lpr h g L1 T1) → (∀L1,T1. h ⊢ ⦃L0, T0⦄ >[g] ⦃L1, T1⦄ → IH_snv_ssta h g L1 T1) → ∀L1,T1. L0 = L1 → T0 = T1 → IH_snv_ssta h g L1 T1. #h #g #L0 #T0 #IH3 #IH2 #IH1 #L1 * * [||||*] @@ -30,7 +31,7 @@ fact snv_ssta_aux: ∀h,g,L0,T0. elim (snv_inv_lref … H1) -H1 #I #K1 #V1 #HLK1 #HV1 elim (ssta_inv_lref1 … H2) -H2 * #K0 #V0 #W1 [| #l ] #H #HVW1 #HX [| #_ ] lapply (ldrop_mono … H … HLK1) -H #H destruct - lapply (ldrop_pair2_fwd_fw … HLK1 (#i)) #H + lapply (fsupp_lref … HLK1) #H lapply (ldrop_fwd_ldrop2 … HLK1) -HLK1 /4 width=7/ | #p #HL0 #HT0 #H1 #X #l #H2 destruct -IH3 -IH2 -IH1 elim (snv_inv_gref … H1) @@ -44,7 +45,7 @@ fact snv_ssta_aux: ∀h,g,L0,T0. elim (ssta_dxprs_aux … IH3 IH2 … HTU1 … HT10) -IH3 -IH2 // /2 width=2/ -T1 #U #X #HU1U #H #HU0 elim (sstas_inv_bind1 … H) -H #U0 #HTU0 #H destruct elim (cpcs_inv_abst2 … HU0) -HU0 #W2 #U2 #HU2 #HU02 - elim (cprs_inv_abst … HU02 Abst W0) -HU02 #HW02 #_ + elim (cprs_fwd_abst … HU02 Abst W0) -HU02 #HW02 #_ lapply (cprs_trans … HW10 … HW02) -W0 /3 width=10 by snv_appl, ex2_intro/ (**) (* auto is too slow without trace *) | #W1 #T1 #HL0 #HT0 #H1 #X #l #H2 destruct -IH3 -IH2 elim (snv_inv_cast … H1) -H1 #U1 #l0 #HW1 #HT1 #HTU1 #HUW1