1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "basic_2/substitution/cpye_cpye.ma".
16 include "basic_2/reduction/lpx_cpys.ma".
18 axiom cpx_cpys_conf_lpx: ∀h,g,G,d,e.
19 ∀L0,T0,T1. ⦃G, L0⦄ ⊢ T0 ➡[h, g] T1 → ∀L1. ⦃G, L0⦄ ⊢ ➡[h, g] L1 →
20 ∀T2. ⦃G, L0⦄ ⊢ T0 ▶*[d, e] T2 →
21 ∃∃T. ⦃G, L1⦄ ⊢ T1 ▶*[d, e] T & ⦃G, L0⦄ ⊢ T2 ➡[h, g] T.
23 (* SN EXTENDED PARALLEL REDUCTION ON LOCAL ENVIRONMENTS *********************)
25 (* Forward lemmas on evaluation for extended substitution *******************)
27 lemma cpx_cpys_cpye_fwd_lpx: ∀h,g,G,L1,T1,T2. ⦃G, L1⦄ ⊢ T1 ➡[h, g] T2 →
28 ∀L2. ⦃G, L1⦄ ⊢ ➡[h, g] L2 →
29 ∀U1,d,e. ⦃G, L1⦄ ⊢ T1 ▶*[d, e] U1 →
30 ∀U2. ⦃G, L2⦄ ⊢ T2 ▶*[d, e] 𝐍⦃U2⦄ →
31 ⦃G, L1⦄ ⊢ U1 ➡[h, g] U2.
32 #h #g #G #L1 #T1 #T2 #HT12 #L2 #HL12 #U1 #d #e #HTU1
33 elim (cpx_cpys_conf_lpx … HT12 … HL12 … HTU1) -T1
34 /3 width=9 by cpx_cpys_trans_lpx, cpye_cpys_conf/
37 lemma cpx_cpye_fwd_lpx: ∀h,g,G,L1,T1,T2. ⦃G, L1⦄ ⊢ T1 ➡[h, g] T2 →
38 ∀L2. ⦃G, L1⦄ ⊢ ➡[h, g] L2 →
39 ∀U1,d,e. ⦃G, L1⦄ ⊢ T1 ▶*[d, e] 𝐍⦃U1⦄ →
40 ∀U2. ⦃G, L2⦄ ⊢ T2 ▶*[d, e] 𝐍⦃U2⦄ →
41 ⦃G, L1⦄ ⊢ U1 ➡[h, g] U2.
42 #h #g #G #L1 #T1 #T2 #HT12 #L2 #HL12 #U1 #d #e *
43 /2 width=9 by cpx_cpys_cpye_fwd_lpx/