X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fdynamic%2Fnta_aaa.ma;h=485daf488a35ce3f7ec284266b53e66840a69356;hb=bd53c4e895203eb049e75434f638f26b5a161a2b;hp=0161996dd9f0a1aaf5e66d2f1baaf528ae6c97be;hpb=dc20d16b32940a94d29a04de0d4fe1f80e00a73f;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_aaa.ma b/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_aaa.ma index 0161996dd..485daf488 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_aaa.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/dynamic/nta_aaa.ma @@ -20,9 +20,9 @@ include "basic_2/dynamic/nta.ma". (* Forward lemmas with atomic arity assignment for terms ********************) (* Note: this means that no type is a universe *) -lemma nta_fwd_aaa (a) (h) (G) (L): - ∀T,U. ⦃G,L⦄ ⊢ T :[a,h] U → ∃∃A. ⦃G,L⦄ ⊢ T ⁝ A & ⦃G,L⦄ ⊢ U ⁝ A. -#a #h #G #L #T #U #H +lemma nta_fwd_aaa (h) (a) (G) (L): + ∀T,U. ❪G,L❫ ⊢ T :[h,a] U → ∃∃A. ❪G,L❫ ⊢ T ⁝ A & ❪G,L❫ ⊢ U ⁝ A. +#h #a #G #L #T #U #H elim (cnv_fwd_aaa … H) -H #A #H elim (aaa_inv_cast … H) -H #HU #HT /2 width=3 by ex2_intro/ @@ -31,20 +31,20 @@ qed-. (* Advanced inversion lemmas ************************************************) (* Basic_1: uses: ty3_predicative *) -lemma nta_abst_predicative (a) (h) (p) (G) (L): - ∀W,T. ⦃G,L⦄ ⊢ ⓛ{p}W.T :[a,h] W → ⊥. -#a #h #p #G #L #W #T #H +lemma nta_abst_predicative (h) (a) (p) (G) (L): + ∀W,T. ❪G,L❫ ⊢ ⓛ[p]W.T :[h,a] W → ⊥. +#h #a #p #G #L #W #T #H elim (nta_fwd_aaa … H) -a -h #X #H #H1W elim (aaa_inv_abst … H) -p #B #A #H2W #_ #H destruct -T lapply (aaa_mono … H1W … H2W) -G -L -W #H elim (discr_apair_xy_x … H) qed-. -(* Basic_2A1: uses: ty3_repellent *) -theorem nta_abst_repellent (a) (h) (p) (G) (K): - ∀W,T,U1. ⦃G,K⦄ ⊢ ⓛ{p}W.T :[a,h] U1 → - ∀U2. ⦃G,K.ⓛW⦄ ⊢ T :[a,h] U2 → ⬆*[1] U1 ≘ U2 → ⊥. -#a #h #p #G #K #W #T #U1 #H1 #U2 #H2 #HU12 +(* Basic_1: uses: ty3_repellent *) +theorem nta_abst_repellent (h) (a) (p) (G) (K): + ∀W,T,U1. ❪G,K❫ ⊢ ⓛ[p]W.T :[h,a] U1 → + ∀U2. ❪G,K.ⓛW❫ ⊢ T :[h,a] U2 → ⇧*[1] U1 ≘ U2 → ⊥. +#h #a #p #G #K #W #T #U1 #H1 #U2 #H2 #HU12 elim (nta_fwd_aaa … H2) -H2 #A2 #H2T #H2U2 elim (nta_fwd_aaa … H1) -H1 #X1 #H1 #HU1 elim (aaa_inv_abst … H1) -a -h -p #B #A1 #_ #H1T #H destruct