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/reduction/cpx_lleq.ma".
16 include "basic_2/computation/cpxs.ma".
18 (* CONTEXT-SENSITIVE EXTENDED PARALLEL COMPUTATION ON TERMS *****************)
20 (* Properties on lazy equivalence for local environments ********************)
22 lemma lleq_cpxs_trans: ∀h,g,G,L2,T1,T2. ⦃G, L2⦄ ⊢ T1 ➡*[h, g] T2 →
23 ∀L1. L1 ≡[T1, 0] L2 → ⦃G, L1⦄ ⊢ T1 ➡*[h, g] T2.
24 #h #g #G #L2 #T1 #T2 #H @(cpxs_ind_dx … H) -T1
25 /4 width=6 by cpx_lleq_conf_dx, lleq_cpx_trans, cpxs_strap2/
28 lemma cpxs_lleq_conf: ∀h,g,G,L2,T1,T2. ⦃G, L2⦄ ⊢ T1 ➡*[h, g] T2 →
29 ∀L1. L2 ≡[T1, 0] L1 → ⦃G, L1⦄ ⊢ T1 ➡*[h, g] T2.
30 /3 width=3 by lleq_cpxs_trans, lleq_sym/ qed-.
32 lemma cpxs_lleq_conf_dx: ∀h,g,G,L2,T1,T2. ⦃G, L2⦄ ⊢ T1 ➡*[h, g] T2 →
33 ∀L1. L1 ≡[T1, 0] L2 → L1 ≡[T2, 0] L2.
34 #h #g #G #L2 #T1 #T2 #H @(cpxs_ind … H) -T2 /3 width=6 by cpx_lleq_conf_dx/
37 lemma cpxs_lleq_conf_sn: ∀h,g,G,L1,T1,T2. ⦃G, L1⦄ ⊢ T1 ➡*[h, g] T2 →
38 ∀L2. L1 ≡[T1, 0] L2 → L1 ≡[T2, 0] L2.
39 /4 width=6 by cpxs_lleq_conf_dx, lleq_sym/ qed-.