]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma
milestone in basic_2
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / rt_computation / csx_cnx_vector.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* STRONGLY NORMALIZING TERM VECTORS FOR UNBOUND PARALLEL RT-TRANSITION *****)
16
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".
22
23 (* Properties with normal terms for unbound parallel rt-transition **********)
24
25 (* Basic_1: was just: sn3_appls_lref *)
26 lemma csx_applv_cnx: ∀h,G,L,T. 𝐒⦃T⦄ → ⦃G, L⦄ ⊢ ⬈[h] 𝐍⦃T⦄ →
27                      ∀Vs. ⦃G, L⦄ ⊢ ⬈*[h] 𝐒⦃Vs⦄ → ⦃G, L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶVs.T⦄.
28 #h #G #L #T #H1T #H2T #Vs elim Vs -Vs
29 [ #_ normalize in ⊢ (????%); /2 width=1 by cnx_csx/
30 | #V #Vs #IHV #H
31   elim (csxv_inv_cons … H) -H #HV #HVs
32   @csx_appl_simple_theq /2 width=1 by applv_simple/ -IHV -HV -HVs
33   #X #H #H0
34   lapply (cpxs_fwd_cnx_vector … H) -H // -H1T -H2T #H
35   elim (H0) -H0 //
36 ]
37 qed.
38
39 (* Advanced properties ******************************************************)
40
41 lemma csx_applv_sort: ∀h,G,L,s,Vs. ⦃G, L⦄ ⊢ ⬈*[h] 𝐒⦃Vs⦄ → ⦃G, L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶVs.⋆s⦄.
42 /3 width=6 by csx_applv_cnx, cnx_sort, simple_atom/ qed.