X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fi_dynamic%2Fntas_nta.ma;h=409f06b81407fdfc6f32741c21f7fe36b12e6ff9;hb=bd53c4e895203eb049e75434f638f26b5a161a2b;hp=7374d2df420897f58a96962a2874aa50d864b45c;hpb=f308429a0fde273605a2330efc63268b4ac36c99;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta.ma b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta.ma index 7374d2df4..409f06b81 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_nta.ma @@ -12,33 +12,112 @@ (* *) (**************************************************************************) -include "basic_2/dynamic/nta.ma". -include "basic_2/i_dynamic/ntas.ma". +include "basic_2/dynamic/nta_preserve.ma". +include "basic_2/i_dynamic/ntas_preserve.ma". (* ITERATED NATIVE TYPE ASSIGNMENT FOR TERMS ********************************) -(* +(* Advanced properties of native validity for terms *************************) -definition ntas: sh → lenv → relation term ≝ - λh,L. star … (nta h L). +lemma cnv_appl_ntas_ge (h) (a) (G) (L): + ∀m,n. m ≤ n → ad a n → ∀V,W. ❪G,L❫ ⊢ V :[h,a] W → + ∀p,T,U. ❪G,L❫ ⊢ T :*[h,a,m] ⓛ[p]W.U → ❪G,L❫ ⊢ ⓐV.T ![h,a]. +#h #a #G #L #m #n #Hmn #Hn #V #W #HVW #p #T #U #HTU +elim (cnv_inv_cast … HVW) -HVW #W0 #HW #HV #HW0 #HVW0 +elim HTU -HTU #U0 #H #HT #HU0 #HTU0 +elim (cnv_cpms_conf … H … HU0 0 (ⓛ[p]W0.U)) -H -HU0 +[| /2 width=1 by cpms_bind/ ] -HW0 (plus_minus_m_m_commutative … Hn) in HTU0; #H + elim (cpms_inv_plus … H) -H #U #HTU #HU0 + lapply (cpms_appl_dx … V V … HTU) [ // ] #H + elim (cnv_cpms_conf … HVT … HTX0 … H) -HVT -HTX0 -H