X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fi_dynamic%2Fntas_etc.ma;h=f6ffde847ec05f543cf95643f0a9c10e8df3b789;hp=0d531af1877f38aa23dc13af5a3908a1514f4e17;hb=f308429a0fde273605a2330efc63268b4ac36c99;hpb=87f57ddc367303c33e19c83cd8989cd561f3185b diff --git a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_etc.ma b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_etc.ma index 0d531af18..f6ffde847 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_etc.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/i_dynamic/ntas_etc.ma @@ -19,13 +19,13 @@ include "basic_2/hod/ntas.ma". (* Advanced properties on native type assignment for terms ******************) -lemma nta_pure_ntas: ∀h,L,U,W,Y. ⦃h, L⦄ ⊢ U :* ⓛW.Y → ∀T. ⦃h, L⦄ ⊢ T : U → - ∀V. ⦃h, L⦄ ⊢ V : W → ⦃h, L⦄ ⊢ ⓐV.T : ⓐV.U. +lemma nta_pure_ntas: ∀h,L,U,W,Y. ⦃h,L⦄ ⊢ U :* ⓛW.Y → ∀T. ⦃h,L⦄ ⊢ T : U → + ∀V. ⦃h,L⦄ ⊢ V : W → ⦃h,L⦄ ⊢ ⓐV.T : ⓐV.U. #h #L #U #W #Y #H @(ntas_ind_dx … H) -U /2 width=1/ /3 width=2/ qed. -axiom pippo: ∀h,L,T,W,Y. ⦃h, L⦄ ⊢ T :* ⓛW.Y → ∀U. ⦃h, L⦄ ⊢ T : U → - ∃Z. ⦃h, L⦄ ⊢ U :* ⓛW.Z. +axiom pippo: ∀h,L,T,W,Y. ⦃h,L⦄ ⊢ T :* ⓛW.Y → ∀U. ⦃h,L⦄ ⊢ T : U → + ∃Z. ⦃h,L⦄ ⊢ U :* ⓛW.Z. (* REQUIRES SUBJECT CONVERSION #h #L #T #W #Y #H @(ntas_ind_dx … H) -T [ #U #HYU @@ -35,9 +35,9 @@ axiom pippo: ∀h,L,T,W,Y. ⦃h, L⦄ ⊢ T :* ⓛW.Y → ∀U. ⦃h, L⦄ ⊢ T (* Advanced inversion lemmas on native type assignment for terms ************) -fact nta_inv_pure1_aux: ∀h,L,Z,U. ⦃h, L⦄ ⊢ Z : U → ∀X,Y. Z = ⓐY.X → - ∃∃W,V,T. ⦃h, L⦄ ⊢ Y : W & ⦃h, L⦄ ⊢ X : V & - L ⊢ ⓐY.V ⬌* U & ⦃h, L⦄ ⊢ V :* ⓛW.T. +fact nta_inv_pure1_aux: ∀h,L,Z,U. ⦃h,L⦄ ⊢ Z : U → ∀X,Y. Z = ⓐY.X → + ∃∃W,V,T. ⦃h,L⦄ ⊢ Y : W & ⦃h,L⦄ ⊢ X : V & + L ⊢ ⓐY.V ⬌* U & ⦃h,L⦄ ⊢ V :* ⓛW.T. #h #L #Z #U #H elim H -L -Z -U [ #L #k #X #Y #H destruct | #L #K #V #W #U #i #_ #_ #_ #_ #X #Y #H destruct @@ -54,13 +54,13 @@ fact nta_inv_pure1_aux: ∀h,L,Z,U. ⦃h, L⦄ ⊢ Z : U → ∀X,Y. Z = ⓐY.X qed. (* Basic_1: was only: ty3_gen_appl *) -lemma nta_inv_pure1: ∀h,L,Y,X,U. ⦃h, L⦄ ⊢ ⓐY.X : U → - ∃∃W,V,T. ⦃h, L⦄ ⊢ Y : W & ⦃h, L⦄ ⊢ X : V & - L ⊢ ⓐY.V ⬌* U & ⦃h, L⦄ ⊢ V :* ⓛW.T. +lemma nta_inv_pure1: ∀h,L,Y,X,U. ⦃h,L⦄ ⊢ ⓐY.X : U → + ∃∃W,V,T. ⦃h,L⦄ ⊢ Y : W & ⦃h,L⦄ ⊢ X : V & + L ⊢ ⓐY.V ⬌* U & ⦃h,L⦄ ⊢ V :* ⓛW.T. /2 width=3/ qed-. -axiom nta_inv_appl1: ∀h,L,Z,Y,X,U. ⦃h, L⦄ ⊢ ⓐZ.ⓛY.X : U → - ∃∃W. ⦃h, L⦄ ⊢ Z : Y & ⦃h, L⦄ ⊢ ⓛY.X : ⓛY.W & +axiom nta_inv_appl1: ∀h,L,Z,Y,X,U. ⦃h,L⦄ ⊢ ⓐZ.ⓛY.X : U → + ∃∃W. ⦃h,L⦄ ⊢ Z : Y & ⦃h,L⦄ ⊢ ⓛY.X : ⓛY.W & L ⊢ ⓐZ.ⓛY.W ⬌* U. (* REQUIRES SUBJECT REDUCTION #h #L #Z #Y #X #U #H