(* Properties with parallel r-computation for full local environments *******)
-lemma lpr_cpcs_trans (h) (G): â\88\80L1,L2. â¦\83G, L1â¦\84 ⊢ ➡[h] L2 →
- â\88\80T1,T2. â¦\83G, L2â¦\84 â\8a¢ T1 â¬\8c*[h] T2 â\86\92 â¦\83G, L1â¦\84 ⊢ T1 ⬌*[h] T2.
+lemma lpr_cpcs_trans (h) (G): â\88\80L1,L2. â\9dªG,L1â\9d« ⊢ ➡[h] L2 →
+ â\88\80T1,T2. â\9dªG,L2â\9d« â\8a¢ T1 â¬\8c*[h] T2 â\86\92 â\9dªG,L1â\9d« ⊢ T1 ⬌*[h] T2.
#h #G #L1 #L2 #HL12 #T1 #T2 #H elim (cpcs_inv_cprs … H) -H
/4 width=5 by cprs_div, lpr_cpms_trans/
qed-.
-lemma lprs_cpcs_trans (h) (G): â\88\80L1,L2. â¦\83G, L1â¦\84 ⊢ ➡*[h] L2 →
- â\88\80T1,T2. â¦\83G, L2â¦\84 â\8a¢ T1 â¬\8c*[h] T2 â\86\92 â¦\83G, L1â¦\84 ⊢ T1 ⬌*[h] T2.
+lemma lprs_cpcs_trans (h) (G): â\88\80L1,L2. â\9dªG,L1â\9d« ⊢ ➡*[h] L2 →
+ â\88\80T1,T2. â\9dªG,L2â\9d« â\8a¢ T1 â¬\8c*[h] T2 â\86\92 â\9dªG,L1â\9d« ⊢ T1 ⬌*[h] T2.
#h #G #L1 #L2 #HL12 #T1 #T2 #H elim (cpcs_inv_cprs … H) -H
/4 width=5 by cprs_div, lprs_cpms_trans/
qed-.
-lemma lprs_cprs_conf (h) (G): â\88\80L1,L2. â¦\83G, L1â¦\84 ⊢ ➡*[h] L2 →
- â\88\80T1,T2. â¦\83G, L1â¦\84 â\8a¢ T1 â\9e¡*[h] T2 â\86\92 â¦\83G, L2â¦\84 ⊢ T1 ⬌*[h] T2.
+lemma lprs_cprs_conf (h) (G): â\88\80L1,L2. â\9dªG,L1â\9d« ⊢ ➡*[h] L2 →
+ â\88\80T1,T2. â\9dªG,L1â\9d« â\8a¢ T1 â\9e¡*[h] T2 â\86\92 â\9dªG,L2â\9d« ⊢ T1 ⬌*[h] T2.
#h #G #L1 #L2 #HL12 #T1 #T2 #HT12 elim (lprs_cprs_conf_dx … HT12 … HL12) -L1
/2 width=3 by cprs_div/
qed-.
(* Basic_1: was: pc3_wcpr0_t *)
(* Basic_1: note: pc3_wcpr0_t should be renamed *)
(* Note: alternative proof /3 width=5 by lprs_cprs_conf, lpr_lprs/ *)
-lemma lpr_cprs_conf (h) (G): â\88\80L1,L2. â¦\83G, L1â¦\84 ⊢ ➡[h] L2 →
- â\88\80T1,T2. â¦\83G, L1â¦\84 â\8a¢ T1 â\9e¡*[h] T2 â\86\92 â¦\83G, L2â¦\84 ⊢ T1 ⬌*[h] T2.
+lemma lpr_cprs_conf (h) (G): â\88\80L1,L2. â\9dªG,L1â\9d« ⊢ ➡[h] L2 →
+ â\88\80T1,T2. â\9dªG,L1â\9d« â\8a¢ T1 â\9e¡*[h] T2 â\86\92 â\9dªG,L2â\9d« ⊢ T1 ⬌*[h] T2.
#h #G #L1 #L2 #HL12 #T1 #T2 #HT12 elim (cprs_lpr_conf_dx … HT12 … HL12) -L1
/2 width=3 by cprs_div/
qed-.
(* Basic_1: was only: pc3_pr0_pr2_t *)
(* Basic_1: note: pc3_pr0_pr2_t should be renamed *)
-lemma lpr_cpr_conf (h) (G): â\88\80L1,L2. â¦\83G, L1â¦\84 ⊢ ➡[h] L2 →
- â\88\80T1,T2. â¦\83G, L1â¦\84 â\8a¢ T1 â\9e¡[h] T2 â\86\92 â¦\83G, L2â¦\84 ⊢ T1 ⬌*[h] T2.
+lemma lpr_cpr_conf (h) (G): â\88\80L1,L2. â\9dªG,L1â\9d« ⊢ ➡[h] L2 →
+ â\88\80T1,T2. â\9dªG,L1â\9d« â\8a¢ T1 â\9e¡[h] T2 â\86\92 â\9dªG,L2â\9d« ⊢ T1 ⬌*[h] T2.
/3 width=5 by lpr_cprs_conf, cpm_cpms/ qed-.
(* Advanced inversion lemmas ************************************************)
(* Note: there must be a proof suitable for lfpr *)
-lemma cpcs_inv_abst_sn (h) (G) (L): â\88\80p1,p2,W1,W2,T1,T2. â¦\83G, Lâ¦\84 â\8a¢ â\93\9b{p1}W1.T1 â¬\8c*[h] â\93\9b{p2}W2.T2 →
- â\88§â\88§ â¦\83G, Lâ¦\84 â\8a¢ W1 â¬\8c*[h] W2 & â¦\83G, L.â\93\9bW1â¦\84 ⊢ T1 ⬌*[h] T2 & p1 = p2.
+lemma cpcs_inv_abst_sn (h) (G) (L): â\88\80p1,p2,W1,W2,T1,T2. â\9dªG,Lâ\9d« â\8a¢ â\93\9b[p1]W1.T1 â¬\8c*[h] â\93\9b[p2]W2.T2 →
+ â\88§â\88§ â\9dªG,Lâ\9d« â\8a¢ W1 â¬\8c*[h] W2 & â\9dªG,L.â\93\9bW1â\9d« ⊢ T1 ⬌*[h] T2 & p1 = p2.
#h #G #L #p1 #p2 #W1 #W2 #T1 #T2 #H
elim (cpcs_inv_cprs … H) -H #T #H1 #H2
elim (cpms_inv_abst_sn … H1) -H1 #W0 #T0 #HW10 #HT10 #H destruct
/4 width=3 by and3_intro, cprs_div, cpcs_cprs_div, cpcs_sym/
qed-.
-lemma cpcs_inv_abst_dx (h) (G) (L): â\88\80p1,p2,W1,W2,T1,T2. â¦\83G, Lâ¦\84 â\8a¢ â\93\9b{p1}W1.T1 â¬\8c*[h] â\93\9b{p2}W2.T2 →
- â\88§â\88§ â¦\83G, Lâ¦\84 â\8a¢ W1 â¬\8c*[h] W2 & â¦\83G, L.â\93\9bW2â¦\84 ⊢ T1 ⬌*[h] T2 & p1 = p2.
+lemma cpcs_inv_abst_dx (h) (G) (L): â\88\80p1,p2,W1,W2,T1,T2. â\9dªG,Lâ\9d« â\8a¢ â\93\9b[p1]W1.T1 â¬\8c*[h] â\93\9b[p2]W2.T2 →
+ â\88§â\88§ â\9dªG,Lâ\9d« â\8a¢ W1 â¬\8c*[h] W2 & â\9dªG,L.â\93\9bW2â\9d« ⊢ T1 ⬌*[h] T2 & p1 = p2.
#h #G #L #p1 #p2 #W1 #W2 #T1 #T2 #HT12 lapply (cpcs_sym … HT12) -HT12
#HT12 elim (cpcs_inv_abst_sn … HT12) -HT12 /3 width=1 by cpcs_sym, and3_intro/
qed-.