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 "static_2/syntax/term_vector.ma".
16 include "basic_2/rt_computation/csx.ma".
18 (* STRONGLY NORMALIZING TERMS VECTORS FOR UNBOUND PARALLEL RT-TRANSITION ****)
20 definition csxv: ∀h. sd h → relation3 genv lenv (list term) ≝
21 λh,o,G,L. all … (csx h o G L).
24 "strong normalization for unbound context-sensitive parallel rt-transition (term vector)"
25 'PRedTyStrong h o G L Ts = (csxv h o G L Ts).
27 (* Basic inversion lemmas ***************************************************)
29 lemma csxv_inv_cons: ∀h,o,G,L,T,Ts. ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃T⨮Ts⦄ →
30 ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃T⦄ ∧ ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃Ts⦄.
33 (* Basic forward lemmas *****************************************************)
35 lemma csx_fwd_applv: ∀h,o,G,L,T,Vs. ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃ⒶVs.T⦄ →
36 ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃Vs⦄ ∧ ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃T⦄.
37 #h #o #G #L #T #Vs elim Vs -Vs /2 width=1 by conj/
39 lapply (csx_fwd_pair_sn … HVs) #HV
40 lapply (csx_fwd_flat_dx … HVs) -HVs #HVs
41 elim (IHVs HVs) -IHVs -HVs /3 width=1 by conj/