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/notation/relations/predtysnstar_5.ma".
16 include "basic_2/rt_transition/lfpx.ma".
18 (* UNCOUNTED PARALLEL RT-COMPUTATION FOR LOCAL ENV.S ON REFERRED ENTRIES ****)
20 definition lfpxs: ∀h. relation4 genv term lenv lenv ≝
21 λh,G,T. TC … (lfpx h G T).
24 "uncounted parallel rt-computation on referred entries (local environment)"
25 'PRedTySnStar h T G L1 L2 = (lfpxs h G T L1 L2).
27 (* Basic properties *********************************************************)
29 (* Basic_2A1: was just: lpx_lpxs *)
30 lemma lfpx_lfpxs: ∀h,G,T,L1,L2. ⦃G, L1⦄ ⊢ ⬈[h, T] L2 → ⦃G, L1⦄ ⊢ ⬈*[h, T] L2.
31 /2 width=1 by inj/ qed.
33 (* Basic_2A1: was just: lpxs_strap1 *)
34 lemma lfpxs_strap1: ∀h,G,T,L1,L,L2. ⦃G, L1⦄ ⊢ ⬈*[h, T] L → ⦃G, L⦄ ⊢ ⬈[h, T] L2 → ⦃G, L1⦄ ⊢ ⬈*[h, T] L2.
35 /2 width=3 by step/ qed.
37 (* Basic_2A1: was just: lpxs_strap2 *)
38 lemma lfpxs_strap2: ∀h,G,T,L1,L,L2. ⦃G, L1⦄ ⊢ ⬈[h, T] L → ⦃G, L⦄ ⊢ ⬈*[h, T] L2 → ⦃G, L1⦄ ⊢ ⬈*[h, T] L2.
39 /2 width=3 by TC_strap/ qed.
41 (* Basic_2A1: was just: lpxs_pair_refl *)
42 lemma lfpxs_pair_refl: ∀h,G,T,L1,L2. ⦃G, L1⦄ ⊢ ⬈*[h, T] L2 → ∀I,V. ⦃G, L1.ⓑ{I}V⦄ ⊢ ⬈*[h, T] L2.ⓑ{I}V.
43 /2 width=1 by TC_lpx_sn_pair_refl/ qed.
45 (* Basic inversion lemmas ***************************************************)
47 (* Basic_2A1: was just: lpxs_inv_atom1 *)
48 lemma lfpxs_inv_atom1: ∀h,G,L2.T. ⦃G, ⋆⦄ ⊢ ⬈*[h, T] L2 → L2 = ⋆.
49 /2 width=2 by TC_lpx_sn_inv_atom1/ qed-.
51 (* Basic_2A1: was just: lpxs_inv_atom2 *)
52 lemma lfpxs_inv_atom2: ∀h,G,L1,T. ⦃G, L1⦄ ⊢ ⬈*[h, T] ⋆ → L1 = ⋆.
53 /2 width=2 by TC_lpx_sn_inv_atom2/ qed-.