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 (* STRONGLY NORMALIZING TERM VECTORS FOR UNCOUNTED PARALLEL RT-TRANSITION ***)
17 include "basic_2/rt_computation/cpxs_theq_vector.ma".
18 include "basic_2/rt_computation/csx_simple_theq.ma".
19 include "basic_2/rt_computation/csx_cnx.ma".
20 include "basic_2/rt_computation/csx_cpxs.ma".
21 include "basic_2/rt_computation/csx_vector.ma".
23 (* Properties with normal terms for uncounted parallel rt-transition ********)
25 (* Basic_1: was just: sn3_appls_lref *)
26 lemma csx_applv_cnx: ∀h,o,G,L,T. 𝐒⦃T⦄ → ⦃G, L⦄ ⊢ ⬈[h, o] 𝐍⦃T⦄ →
27 ∀Vs. ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃Vs⦄ → ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃ⒶVs.T⦄.
28 #h #o #G #L #T #H1T #H2T #Vs elim Vs -Vs
29 [ #_ normalize in ⊢ (?????%); /2 width=1/
31 elim (csxv_inv_cons … H) -H #HV #HVs
32 @csx_appl_simple_theq /2 width=1 by applv_simple/ -IHV -HV -HVs
34 lapply (cpxs_fwd_cnx_vector … o … H) -H // -H1T -H2T #H
39 (* Advanced properties ******************************************************)
41 lemma csx_applv_sort: ∀h,o,G,L,s,Vs. ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃Vs⦄ → ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃ⒶVs.⋆s⦄.
42 #h #o #G #L #s elim (deg_total h o s)
43 #d generalize in match s; -s elim d -d
44 [ /3 width=6 by csx_applv_cnx, cnx_sort, simple_atom/
45 | #d #IHd #s #Hd #Vs elim Vs -Vs /2 width=1 by/
47 elim (csxv_inv_cons … HVVs) #HV #HVs
48 @csx_appl_simple_theq /2 width=1 by applv_simple, simple_atom/
50 elim (cpxs_fwd_sort_vector … o … H) -H #H
52 | -H0 @(csx_cpxs_trans … (Ⓐ(V@Vs).⋆(next h s)))
53 /3 width=1 by cpxs_flat_dx, deg_next_SO/