X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fdynamic%2Fnta_preserve.ma;h=4e37eb806f4781af296ff6b8c2ff0a4f347fe414;hp=ab3b33ad5675415276e73e442d97020695a87799;hb=0c302a9fda708e5019e48d14c5419a8a65190745;hpb=5c92c318030a05c766b3f6070dbd23589cbdee04 diff --git a/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_preserve.ma b/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_preserve.ma index ab3b33ad5..4e37eb806 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_preserve.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_preserve.ma @@ -31,6 +31,17 @@ elim (cnv_fwd_cpm_SO … HT) #U #HTU /4 width=2 by cnv_cpms_nta, cpm_cpms, ex_intro/ qed-. +(* Basic_1: was: ty3_typecheck *) +lemma nta_typecheck (a) (h) (G) (L): + ∀T,U. ⦃G,L⦄ ⊢ T :[a,h] U → ∃T0. ⦃G,L⦄ ⊢ ⓝU.T :[a,h] T0. +/3 width=1 by cnv_cast, cnv_nta_sn/ qed-. + +(* Basic_1: was: ty3_correct *) +(* Basic_2A1: was: ntaa_fwd_correct *) +lemma nta_fwd_correct (a) (h) (G) (L): + ∀T,U. ⦃G,L⦄ ⊢ T :[a,h] U → ∃T0. ⦃G,L⦄ ⊢ U :[a,h] T0. +/3 width=2 by nta_fwd_cnv_dx, cnv_nta_sn/ qed-. + lemma nta_pure_cnv (h) (G) (L): ∀T,U. ⦃G,L⦄ ⊢ T :*[h] U → ∀V. ⦃G,L⦄ ⊢ ⓐV.U !*[h] → ⦃G,L⦄ ⊢ ⓐV.T :*[h] ⓐV.U. @@ -106,6 +117,32 @@ elim (cpms_inv_cast1 … H2) -H2 [ * || * ] ] qed-. +(* Basic_1: uses: ty3_gen_cast *) +lemma nta_inv_cast_sn_old (a) (h) (G) (L) (X2): + ∀T0,T1. ⦃G,L⦄ ⊢ ⓝT1.T0 :[a,h] X2 → + ∃∃T2. ⦃G,L⦄ ⊢ T0 :[a,h] T1 & ⦃G,L⦄ ⊢ T1 :[a,h] T2 & ⦃G,L⦄ ⊢ ⓝT2.T1 ⬌*[h] X2 & ⦃G,L⦄ ⊢ X2 ![a,h]. +#a #h #G #L #X2 #T0 #T1 #H +elim (cnv_inv_cast … H) -H #X0 #HX2 #H1 #HX20 #H2 +elim (cnv_inv_cast … H1) #X #HT1 #HT0 #HT1X #HT0X +elim (cpms_inv_cast1 … H2) -H2 [ * || * ] +[ #U1 #U0 #HTU1 #HTU0 #H destruct + elim (cnv_cpms_conf … HT0 … HT0X … HTU0) -HT0 -HT0X -HTU0 +