(* Properties with restricted rt-computation for terms **********************)
fact cpms_tneqx_fwd_step_sn_aux (h) (a) (n) (G) (L) (T1):
- â\88\80T2. â¦\83G,Lâ¦\84 â\8a¢ T1 â\9e¡*[n,h] T2 â\86\92 â¦\83G,Lâ¦\84 â\8a¢ T1 ![h,a] â\86\92 (T1 â\89\9b T2 → ⊥) →
- (â\88\80G0,L0,T0. â¦\83G,L,T1â¦\84 >[h] â¦\83G0,L0,T0â¦\84 → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
- (â\88\80G0,L0,T0. â¦\83G,L,T1â¦\84 >[h] â¦\83G0,L0,T0â¦\84 → IH_cnv_cpm_trans_lpr h a G0 L0 T0) →
- â\88\83â\88\83n1,n2,T0. â¦\83G,Lâ¦\84 â\8a¢ T1 â\9e¡[n1,h] T0 & T1 â\89\9b T0 â\86\92 â\8a¥ & â¦\83G,Lâ¦\84 â\8a¢ T0 â\9e¡*[n2,h] T2 & n1+n2 = n.
+ â\88\80T2. â\9dªG,Lâ\9d« â\8a¢ T1 â\9e¡*[h,n] T2 â\86\92 â\9dªG,Lâ\9d« â\8a¢ T1 ![h,a] â\86\92 (T1 â\89\85 T2 → ⊥) →
+ (â\88\80G0,L0,T0. â\9dªG,L,T1â\9d« > â\9dªG0,L0,T0â\9d« → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
+ (â\88\80G0,L0,T0. â\9dªG,L,T1â\9d« > â\9dªG0,L0,T0â\9d« → IH_cnv_cpm_trans_lpr h a G0 L0 T0) →
+ â\88\83â\88\83n1,n2,T0. â\9dªG,Lâ\9d« â\8a¢ T1 â\9e¡[h,n1] T0 & T1 â\89\85 T0 â\86\92 â\8a¥ & â\9dªG,Lâ\9d« â\8a¢ T0 â\9e¡*[h,n2] T2 & n1+n2 = n.
#h #a #n #G #L #T1 #T2 #H
@(cpms_ind_sn … H) -n -T1
[ #_ #H2T2 elim H2T2 -H2T2 //
[ elim (teqx_dec T T2) #H2T2
[ -IH -IH2 -IH1 -H0T1 /4 width=7 by teqx_trans, ex4_3_intro/
| lapply (cnv_cpm_trans_lpr_aux … IH2 IH1 … H1T1 L ?) [6:|*: // ] -H1T2 -H2T12 #H0T
- elim (IH H0T H2T2) [|*: /4 width=5 by cpm_fpbq, fpbq_fpbg_trans/ ] -IH -IH2 -H0T -H2T2 (**)
+ elim (IH H0T H2T2) [|*: /4 width=5 by cpm_fwd_fpb, fpb_fpbg_trans/ ] -IH -IH2 -H0T -H2T2 (**)
#m1 #m2 #T0 #H1T0 #H2T0 #H1T02 #H destruct
elim (cnv_cpm_teqx_cpm_trans_aux … IH1 … H0T1 … H1T1 H2T1 … H1T0) -IH1 -H0T1 -H1T1 -H1T0
#T3 #H1T13 #H1T30 #H2T30
qed-.
fact cpms_teqx_ind_sn (h) (a) (G) (L) (T2) (Q:relation2 …):
- (â¦\83G,Lâ¦\84 ⊢ T2 ![h,a] → Q 0 T2) →
- (â\88\80n1,n2,T1,T. â¦\83G,Lâ¦\84 â\8a¢ T1 â\9e¡[n1,h] T â\86\92 â¦\83G,Lâ¦\84 â\8a¢ T1 ![h,a] â\86\92 T1 â\89\9b T â\86\92 â¦\83G,Lâ¦\84 â\8a¢ T â\9e¡*[n2,h] T2 â\86\92 â¦\83G,Lâ¦\84 â\8a¢ T ![h,a] â\86\92 T â\89\9b T2 → Q n2 T → Q (n1+n2) T1) →
- â\88\80n,T1. â¦\83G,Lâ¦\84 â\8a¢ T1 â\9e¡*[n,h] T2 â\86\92 â¦\83G,Lâ¦\84 â\8a¢ T1 ![h,a] â\86\92 T1 â\89\9b T2 →
- (â\88\80G0,L0,T0. â¦\83G,L,T1â¦\84 >[h] â¦\83G0,L0,T0â¦\84 → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
- (â\88\80G0,L0,T0. â¦\83G,L,T1â¦\84 >[h] â¦\83G0,L0,T0â¦\84 â\86\92 IH_cnv_cpm_trans_lpr h a G0 L0 T0) â\86\92
+ (â\9dªG,Lâ\9d« ⊢ T2 ![h,a] → Q 0 T2) →
+ (â\88\80n1,n2,T1,T. â\9dªG,Lâ\9d« â\8a¢ T1 â\9e¡[h,n1] T â\86\92 â\9dªG,Lâ\9d« â\8a¢ T1 ![h,a] â\86\92 T1 â\89\85 T â\86\92 â\9dªG,Lâ\9d« â\8a¢ T â\9e¡*[h,n2] T2 â\86\92 â\9dªG,Lâ\9d« â\8a¢ T ![h,a] â\86\92 T â\89\85 T2 → Q n2 T → Q (n1+n2) T1) →
+ â\88\80n,T1. â\9dªG,Lâ\9d« â\8a¢ T1 â\9e¡*[h,n] T2 â\86\92 â\9dªG,Lâ\9d« â\8a¢ T1 ![h,a] â\86\92 T1 â\89\85 T2 →
+ (â\88\80G0,L0,T0. â\9dªG,L,T1â\9d« > â\9dªG0,L0,T0â\9d« → IH_cnv_cpms_conf_lpr h a G0 L0 T0) →
+ (â\88\80G0,L0,T0. â\9dªG,L,T1â\9d« > â\9dªG0,L0,T0â\9d« â\86\92 IH_cnv_cpm_trans_lpr h a G0 L0 T0) â\86\92
Q n T1.
#h #a #G #L #T2 #Q #IB1 #IB2 #n #T1 #H
@(cpms_ind_sn … H) -n -T1
elim (teqx_dec T1 T) #H2T1
[ lapply (cnv_cpm_trans_lpr_aux … IH2 IH1 … H1T1 L ?) [6:|*: // ] #H0T
lapply (teqx_canc_sn … H2T1 … H2T12) -H2T12 #H2T2
- /6 width=7 by cpm_fpbq, fpbq_fpbg_trans/ (**)
+ /6 width=7 by cpm_fwd_fpb, fpb_fpbg_trans/ (**)
| -IB2 -IH -IH2 -IH1
elim (cnv_fpbg_refl_false … H0T1) -a -Q
- /3 width=8 by cpm_tneqx_cpm_cpms_teqx_sym_fwd_fpbg/
+ /3 width=9 by cpm_tneqx_cpm_cpms_teqx_sym_fwd_fpbg/
]
]
qed-.