(* *)
(**************************************************************************)
-include "basic_2/reducibility/cpr.ma".
include "basic_2/reducibility/cnf.ma".
(* CONTEXT-SENSITIVE STRONGLY NORMALIZING TERMS *****************************)
(* Basic eliminators ********************************************************)
lemma csn_ind: ∀L. ∀R:predicate term.
- (â\88\80T1. L â\8a¢ â¬\87* T1 →
- (∀T2. L ⊢ T1 ➡ T2 → (T1 = T2 → False) → R T2) →
+ (â\88\80T1. L â\8a¢ â¬\8a* T1 →
+ (∀T2. L ⊢ T1 ➡ T2 → (T1 = T2 → ⊥) → R T2) →
R T1
) →
- â\88\80T. L â\8a¢ â¬\87* T → R T.
+ â\88\80T. L â\8a¢ â¬\8a* T → R T.
#L #R #H0 #T1 #H elim H -T1 #T1 #HT1 #IHT1
@H0 -H0 /3 width=1/ -IHT1 /4 width=1/
qed-.
(* Basic_1: was: sn3_pr2_intro *)
lemma csn_intro: ∀L,T1.
- (∀T2. L ⊢ T1 ➡ T2 → (T1 = T2 → False) → L ⊢ ⬇* T2) → L ⊢ ⬇* T1.
-#L #T1 #H
-@(SN_intro … H)
-qed.
+ (∀T2. L ⊢ T1 ➡ T2 → (T1 = T2 → ⊥) → L ⊢ ⬊* T2) → L ⊢ ⬊* T1.
+/4 width=1/ qed.
(* Basic_1: was: sn3_nf2 *)
-lemma csn_cnf: ∀L,T. L ⊢ 𝐍[T] → L ⊢ ⬇* T.
+lemma csn_cnf: ∀L,T. L ⊢ 𝐍⦃T⦄ → L ⊢ ⬊* T.
/2 width=1/ qed.
-lemma csn_cpr_trans: â\88\80L,T1. L â\8a¢ â¬\87* T1 â\86\92 â\88\80T2. L â\8a¢ T1 â\9e¡ T2 â\86\92 L â\8a¢ â¬\87* T2.
+lemma csn_cpr_trans: â\88\80L,T1. L â\8a¢ â¬\8a* T1 â\86\92 â\88\80T2. L â\8a¢ T1 â\9e¡ T2 â\86\92 L â\8a¢ â¬\8a* T2.
#L #T1 #H elim H -T1 #T1 #HT1 #IHT1 #T2 #HLT12
@csn_intro #T #HLT2 #HT2
elim (term_eq_dec T1 T2) #HT12
qed.
(* Basic_1: was: sn3_cast *)
-lemma csn_cast: â\88\80L,W. L â\8a¢ â¬\87* W â\86\92 â\88\80T. L â\8a¢ â¬\87* T â\86\92 L â\8a¢ â¬\87* â\93£W. T.
+lemma csn_cast: â\88\80L,W. L â\8a¢ â¬\8a* W â\86\92 â\88\80T. L â\8a¢ â¬\8a* T â\86\92 L â\8a¢ â¬\8a* â\93\9dW. T.
#L #W #HW elim HW -W #W #_ #IHW #T #HT @(csn_ind … HT) -T #T #HT #IHT
@csn_intro #X #H1 #H2
elim (cpr_inv_cast1 … H1) -H1
(* Basic forward lemmas *****************************************************)
-fact csn_fwd_flat_dx_aux: â\88\80L,U. L â\8a¢ â¬\87* U â\86\92 â\88\80I,V,T. U = â\93\95{I} V. T â\86\92 L â\8a¢ â¬\87* T.
+fact csn_fwd_flat_dx_aux: â\88\80L,U. L â\8a¢ â¬\8a* U â\86\92 â\88\80I,V,T. U = â\93\95{I} V. T â\86\92 L â\8a¢ â¬\8a* T.
#L #U #H elim H -H #U0 #_ #IH #I #V #T #H destruct
@csn_intro #T2 #HLT2 #HT2
@(IH (ⓕ{I} V. T2)) -IH // /2 width=1/ -HLT2 #H destruct /2 width=1/
qed.
(* Basic_1: was: sn3_gen_flat *)
-lemma csn_fwd_flat_dx: â\88\80I,L,V,T. L â\8a¢ â¬\87* â\93\95{I} V. T â\86\92 L â\8a¢ â¬\87* T.
+lemma csn_fwd_flat_dx: â\88\80I,L,V,T. L â\8a¢ â¬\8a* â\93\95{I} V. T â\86\92 L â\8a¢ â¬\8a* T.
/2 width=5/ qed-.
-(* Basic_1: removed theorems 10:
- sn3_gen_cflat sn3_cflat
- sn3_appl_cast sn3_appl_beta sn3_appl_lref sn3_appl_abbr
- sn3_appl_appls sn3_bind sn3_appl_bind sn3_appls_bind
+(* Basic_1: removed theorems 14:
+ sn3_cdelta
+ sn3_gen_cflat sn3_cflat sn3_cpr3_trans sn3_shift sn3_change
+ sn3_appl_cast sn3_appl_beta sn3_appl_lref sn3_appl_abbr
+ sn3_appl_appls sn3_bind sn3_appl_bind sn3_appls_bind
*)