]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma
additions and corrections for the article on λδ-2B
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / rt_computation / csx_cnx_vector.ma
index ef3d1c20bbc30947a5b5d055ff5af69b910d8f0b..fbaee7c73c2f0ac70b50bb0e3057e902d4e472ef 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-(* STRONGLY NORMALIZING TERM VECTORS FOR UNCOUNTED PARALLEL RT-TRANSITION ***)
+(* STRONGLY NORMALIZING TERM VECTORS FOR UNBOUND PARALLEL RT-TRANSITION *****)
 
 include "basic_2/rt_computation/cpxs_theq_vector.ma".
 include "basic_2/rt_computation/csx_simple_theq.ma".
@@ -20,37 +20,24 @@ include "basic_2/rt_computation/csx_cnx.ma".
 include "basic_2/rt_computation/csx_cpxs.ma".
 include "basic_2/rt_computation/csx_vector.ma".
 
-(* Properties with normal terms for uncounted parallel rt-transition ********)
+(* Properties with normal terms for unbound parallel rt-transition **********)
 
 (* Basic_1: was just: sn3_appls_lref *)
-lemma csx_applv_cnx: ∀h,o,G,L,T. 𝐒⦃T⦄ → ⦃G, L⦄ ⊢ ⬈[h, o] 𝐍⦃T⦄ →
-                     ∀Vs. ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃Vs⦄ → ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃ⒶVs.T⦄.
-#h #o #G #L #T #H1T #H2T #Vs elim Vs -Vs
-[ #_ normalize in ⊢ (?????%); /2 width=1/
+lemma csx_applv_cnx: ∀h,G,L,T. 𝐒⦃T⦄ → ⦃G,L⦄ ⊢ ⬈[h] 𝐍⦃T⦄ →
+                     ∀Vs. ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃Vs⦄ → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶVs.T⦄.
+#h #G #L #T #H1T #H2T #Vs elim Vs -Vs
+[ #_ normalize in ⊢ (????%); /2 width=1 by cnx_csx/
 | #V #Vs #IHV #H
   elim (csxv_inv_cons … H) -H #HV #HVs
   @csx_appl_simple_theq /2 width=1 by applv_simple/ -IHV -HV -HVs
   #X #H #H0
-  lapply (cpxs_fwd_cnx_vector … o … H) -H // -H1T -H2T #H
+  lapply (cpxs_fwd_cnx_vector … H) -H // -H1T -H2T #H
   elim (H0) -H0 //
 ]
 qed.
 
 (* Advanced properties ******************************************************)
 
-lemma csx_applv_sort: ∀h,o,G,L,s,Vs. ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃Vs⦄ → ⦃G, L⦄ ⊢ ⬈*[h, o] 𝐒⦃ⒶVs.⋆s⦄.
-#h #o #G #L #s elim (deg_total h o s)
-#d generalize in match s; -s elim d -d
-[ /3 width=6 by csx_applv_cnx, cnx_sort, simple_atom/
-| #d #IHd #s #Hd #Vs elim Vs -Vs /2 width=1 by/
-  #V #Vs #IHVs #HVVs
-  elim (csxv_inv_cons … HVVs) #HV #HVs
-  @csx_appl_simple_theq /2 width=1 by applv_simple, simple_atom/
-  #X #H #H0
-  elim (cpxs_fwd_sort_vector … o … H) -H #H
-  [ elim H0 -H0 //
-  | -H0 @(csx_cpxs_trans … (Ⓐ(V@Vs).⋆(next h s)))
-    /3 width=1 by cpxs_flat_dx, deg_next_SO/
-  ]
-]
-qed.
+(* Note: strong normalization does not depend on this any more *)
+lemma csx_applv_sort: ∀h,G,L,s,Vs. ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃Vs⦄ → ⦃G,L⦄ ⊢ ⬈*[h] 𝐒⦃ⒶVs.⋆s⦄.
+/3 width=6 by csx_applv_cnx, cnx_sort, simple_atom/ qed.