(* 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):
- â\88\80T,U. â¦\83G,Lâ¦\84 â\8a¢ T :[a,h] U â\86\92 â\88\83â\88\83A. â¦\83G,Lâ¦\84 â\8a¢ T â\81\9d A & â¦\83G,Lâ¦\84 ⊢ U ⁝ A.
-#a #h #G #L #T #U #H
+lemma nta_fwd_aaa (h) (a) (G) (L):
+ â\88\80T,U. â\9d¨G,Lâ\9d© â\8a¢ T :[h,a] U â\86\92 â\88\83â\88\83A. â\9d¨G,Lâ\9d© â\8a¢ T â\81\9d A & â\9d¨G,Lâ\9d© ⊢ 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/
(* Advanced inversion lemmas ************************************************)
(* Basic_1: uses: ty3_predicative *)
-lemma nta_abst_predicative (a) (h) (p) (G) (L):
- â\88\80W,T. â¦\83G,Lâ¦\84 â\8a¢ â\93\9b{p}W.T :[a,h] W → ⊥.
-#a #h #p #G #L #W #T #H
+lemma nta_abst_predicative (h) (a) (p) (G) (L):
+ â\88\80W,T. â\9d¨G,Lâ\9d© â\8a¢ â\93\9b[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):
- â\88\80W,T,U1. â¦\83G,Kâ¦\84 â\8a¢ â\93\9b{p}W.T :[a,h] U1 →
- â\88\80U2. â¦\83G,K.â\93\9bWâ¦\84 â\8a¢ T :[a,h] U2 â\86\92 â¬\86*[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):
+ â\88\80W,T,U1. â\9d¨G,Kâ\9d© â\8a¢ â\93\9b[p]W.T :[h,a] U1 →
+ â\88\80U2. â\9d¨G,K.â\93\9bWâ\9d© â\8a¢ T :[h,a] U2 â\86\92 â\87§[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