(* Basic eliminators ********************************************************)
lemma csx_ind (G) (L) (Q:predicate …):
- (â\88\80T1. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T1 →
- (â\88\80T2. â\9dªG,Lâ\9d« ⊢ T1 ⬈ T2 → (T1 ≅ T2 → ⊥) → Q T2) →
+ (â\88\80T1. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T1 →
+ (â\88\80T2. â\9d¨G,Lâ\9d© ⊢ T1 ⬈ T2 → (T1 ≅ T2 → ⊥) → Q T2) →
Q T1
) →
- â\88\80T. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T → Q T.
+ â\88\80T. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T → Q T.
#G #L #Q #H0 #T1 #H elim H -T1
/5 width=1 by SN_intro/
qed-.
(* Basic_1: was just: sn3_pr2_intro *)
lemma csx_intro (G) (L):
- â\88\80T1. (â\88\80T2. â\9dªG,Lâ\9d« â\8a¢ T1 â¬\88 T2 â\86\92 (T1 â\89\85 T2 â\86\92 â\8a¥) â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T2) →
- â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T1.
+ â\88\80T1. (â\88\80T2. â\9d¨G,Lâ\9d© â\8a¢ T1 â¬\88 T2 â\86\92 (T1 â\89\85 T2 â\86\92 â\8a¥) â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T2) →
+ â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T1.
/4 width=1 by SN_intro/ qed.
(* Basic forward lemmas *****************************************************)
fact csx_fwd_pair_sn_aux (G) (L):
- â\88\80U. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 U →
- â\88\80I,V,T. U = â\91¡[I]V.T â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 V.
+ â\88\80U. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 U →
+ â\88\80I,V,T. U = â\91¡[I]V.T â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 V.
#G #L #U #H elim H -H #U0 #_ #IH #I #V #T #H destruct
@csx_intro #V2 #HLV2 #HV2
@(IH (②[I]V2.T)) -IH /2 width=3 by cpx_pair_sn/ -HLV2 #H
(* Basic_1: was just: sn3_gen_head *)
lemma csx_fwd_pair_sn (G) (L):
- â\88\80I,V,T. â\9dªG,Lâ\9d« â\8a¢ â¬\88*ð\9d\90\92 â\91¡[I]V.T â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 V.
+ â\88\80I,V,T. â\9d¨G,Lâ\9d© â\8a¢ â¬\88*ð\9d\90\92 â\91¡[I]V.T â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 V.
/2 width=5 by csx_fwd_pair_sn_aux/ qed-.
fact csx_fwd_bind_dx_aux (G) (L):
- â\88\80U. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 U →
- â\88\80p,I,V,T. U = â\93\91[p,I]V.T â\86\92 â\9dªG,L.â\93\91[I]Vâ\9d« ⊢ ⬈*𝐒 T.
+ â\88\80U. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 U →
+ â\88\80p,I,V,T. U = â\93\91[p,I]V.T â\86\92 â\9d¨G,L.â\93\91[I]Vâ\9d© ⊢ ⬈*𝐒 T.
#G #L #U #H elim H -H #U0 #_ #IH #p #I #V #T #H destruct
@csx_intro #T2 #HLT2 #HT2
@(IH (ⓑ[p, I]V.T2)) -IH /2 width=3 by cpx_bind/ -HLT2 #H
(* Basic_1: was just: sn3_gen_bind *)
lemma csx_fwd_bind_dx (G) (L):
- â\88\80p,I,V,T. â\9dªG,Lâ\9d« â\8a¢ â¬\88*ð\9d\90\92 â\93\91[p,I]V.T â\86\92 â\9dªG,L.â\93\91[I]Vâ\9d« ⊢ ⬈*𝐒 T.
+ â\88\80p,I,V,T. â\9d¨G,Lâ\9d© â\8a¢ â¬\88*ð\9d\90\92 â\93\91[p,I]V.T â\86\92 â\9d¨G,L.â\93\91[I]Vâ\9d© ⊢ ⬈*𝐒 T.
/2 width=4 by csx_fwd_bind_dx_aux/ qed-.
fact csx_fwd_flat_dx_aux (G) (L):
- â\88\80U. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 U →
- â\88\80I,V,T. U = â\93\95[I]V.T â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T.
+ â\88\80U. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 U →
+ â\88\80I,V,T. U = â\93\95[I]V.T â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T.
#G #L #U #H elim H -H #U0 #_ #IH #I #V #T #H destruct
@csx_intro #T2 #HLT2 #HT2
@(IH (ⓕ[I]V.T2)) -IH /2 width=3 by cpx_flat/ -HLT2 #H
(* Basic_1: was just: sn3_gen_flat *)
lemma csx_fwd_flat_dx (G) (L):
- â\88\80I,V,T. â\9dªG,Lâ\9d« â\8a¢ â¬\88*ð\9d\90\92 â\93\95[I]V.T â\86\92 â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T.
+ â\88\80I,V,T. â\9d¨G,Lâ\9d© â\8a¢ â¬\88*ð\9d\90\92 â\93\95[I]V.T â\86\92 â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T.
/2 width=5 by csx_fwd_flat_dx_aux/ qed-.
lemma csx_fwd_bind (G) (L):
- â\88\80p,I,V,T. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 ⓑ[p,I]V.T →
- â\88§â\88§ â\9dªG,Lâ\9d« â\8a¢ â¬\88*ð\9d\90\92 V & â\9dªG,L.â\93\91[I]Vâ\9d« ⊢ ⬈*𝐒 T.
+ â\88\80p,I,V,T. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 ⓑ[p,I]V.T →
+ â\88§â\88§ â\9d¨G,Lâ\9d© â\8a¢ â¬\88*ð\9d\90\92 V & â\9d¨G,L.â\93\91[I]Vâ\9d© ⊢ ⬈*𝐒 T.
/3 width=3 by csx_fwd_pair_sn, csx_fwd_bind_dx, conj/ qed-.
lemma csx_fwd_flat (G) (L):
- â\88\80I,V,T. â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 ⓕ[I]V.T →
- â\88§â\88§ â\9dªG,Lâ\9d« â\8a¢ â¬\88*ð\9d\90\92 V & â\9dªG,Lâ\9d« ⊢ ⬈*𝐒 T.
+ â\88\80I,V,T. â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 ⓕ[I]V.T →
+ â\88§â\88§ â\9d¨G,Lâ\9d© â\8a¢ â¬\88*ð\9d\90\92 V & â\9d¨G,Lâ\9d© ⊢ ⬈*𝐒 T.
/3 width=3 by csx_fwd_pair_sn, csx_fwd_flat_dx, conj/ qed-.
(* Basic_1: removed theorems 14: