(* Basic inversion lemmas ***************************************************)
lemma cnx_inv_abst (G) (L):
- â\88\80p,V,T. â\9dªG,Lâ\9d« ⊢ ⬈𝐍 ⓛ[p]V.T →
- â\88§â\88§ â\9dªG,Lâ\9d« â\8a¢ â¬\88ð\9d\90\8d V & â\9dªG,L.â\93\9bVâ\9d« ⊢ ⬈𝐍 T.
+ â\88\80p,V,T. â\9d¨G,Lâ\9d© ⊢ ⬈𝐍 ⓛ[p]V.T →
+ â\88§â\88§ â\9d¨G,Lâ\9d© â\8a¢ â¬\88ð\9d\90\8d V & â\9d¨G,L.â\93\9bVâ\9d© ⊢ ⬈𝐍 T.
#G #L #p #V1 #T1 #HVT1 @conj
[ #V2 #HV2 lapply (HVT1 (ⓛ[p]V2.T1) ?) -HVT1 /2 width=2 by cpx_pair_sn/ -HV2
| #T2 #HT2 lapply (HVT1 (ⓛ[p]V1.T2) ?) -HVT1 /2 width=2 by cpx_bind/ -HT2
(* Basic_2A1: was: cnx_inv_abbr *)
lemma cnx_inv_abbr_neg (G) (L):
- â\88\80V,T. â\9dªG,Lâ\9d« ⊢ ⬈𝐍 -ⓓV.T →
- â\88§â\88§ â\9dªG,Lâ\9d« â\8a¢ â¬\88ð\9d\90\8d V & â\9dªG,L.â\93\93Vâ\9d« ⊢ ⬈𝐍 T.
+ â\88\80V,T. â\9d¨G,Lâ\9d© ⊢ ⬈𝐍 -ⓓV.T →
+ â\88§â\88§ â\9d¨G,Lâ\9d© â\8a¢ â¬\88ð\9d\90\8d V & â\9d¨G,L.â\93\93Vâ\9d© ⊢ ⬈𝐍 T.
#G #L #V1 #T1 #HVT1 @conj
[ #V2 #HV2 lapply (HVT1 (-ⓓV2.T1) ?) -HVT1 /2 width=2 by cpx_pair_sn/ -HV2
| #T2 #HT2 lapply (HVT1 (-ⓓV1.T2) ?) -HVT1 /2 width=2 by cpx_bind/ -HT2
(* Basic_2A1: was: cnx_inv_eps *)
lemma cnx_inv_cast (G) (L):
- â\88\80V,T. â\9dªG,Lâ\9d« ⊢ ⬈𝐍 ⓝV.T → ⊥.
+ â\88\80V,T. â\9d¨G,Lâ\9d© ⊢ ⬈𝐍 ⓝV.T → ⊥.
#G #L #V #T #H lapply (H T ?) -H
/2 width=6 by cpx_eps, teqg_inv_pair_xy_y/
qed-.
(* Basic properties *********************************************************)
lemma cnx_sort (G) (L):
- â\88\80s. â\9dªG,Lâ\9d« ⊢ ⬈𝐍 ⋆s.
+ â\88\80s. â\9d¨G,Lâ\9d© ⊢ ⬈𝐍 ⋆s.
#G #L #s #X #H elim (cpx_inv_sort1 … H) -H
/2 width=1 by teqg_sort/
qed.
lemma cnx_abst (G) (L):
- â\88\80p,W,T. â\9dªG,Lâ\9d« â\8a¢ â¬\88ð\9d\90\8d W â\86\92 â\9dªG,L.â\93\9bWâ\9d« â\8a¢ â¬\88ð\9d\90\8d T â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈𝐍 ⓛ[p]W.T.
+ â\88\80p,W,T. â\9d¨G,Lâ\9d© â\8a¢ â¬\88ð\9d\90\8d W â\86\92 â\9d¨G,L.â\93\9bWâ\9d© â\8a¢ â¬\88ð\9d\90\8d T â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈𝐍 ⓛ[p]W.T.
#G #L #p #W #T #HW #HT #X #H
elim (cpx_inv_abst1 … H) -H #W0 #T0 #HW0 #HT0 #H destruct
@teqx_pair [ @HW | @HT ] // (**) (* auto fails because δ-expansion gets in the way *)