]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma
a1f65935581d5ee559bf3e36a8eb76f83ed03f8f
[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_teqo_vector.ma".
18 include "basic_2/rt_computation/csx_simple_teqo.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):
27       ∀T. 𝐒❪T❫ → ❪G,L❫ ⊢ ⬈𝐍[h] T →
28       ∀Vs. ❪G,L❫ ⊢ ⬈*𝐒[h] Vs → ❪G,L❫ ⊢ ⬈*𝐒[h] ⒶVs.T.
29 #h #G #L #T #H1T #H2T #Vs elim Vs -Vs
30 [ #_ normalize in ⊢ (????%); /2 width=1 by cnx_csx/
31 | #V #Vs #IHV #H
32   elim (csxv_inv_cons … H) -H #HV #HVs
33   @csx_appl_simple_teqo /2 width=1 by applv_simple/ -IHV -HV -HVs
34   #X #H #H0
35   lapply (cpxs_fwd_cnx_vector … H) -H // -H1T -H2T #H
36   elim (H0) -H0 //
37 ]
38 qed.
39
40 (* Advanced properties ******************************************************)
41
42 (* Note: strong normalization does not depend on this any more *)
43 lemma csx_applv_sort (h) (G) (L):
44       ∀s,Vs. ❪G,L❫ ⊢ ⬈*𝐒[h] Vs → ❪G,L❫ ⊢ ⬈*𝐒[h] ⒶVs.⋆s.
45 /3 width=6 by csx_applv_cnx, cnx_sort, simple_atom/ qed.