X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fcsx_cnx_vector.ma;h=6110714a1d11908f9ac99f03d24ceb29077ff142;hb=3c7b4071a9ac096b02334c1d47468776b948e2de;hp=ef3d1c20bbc30947a5b5d055ff5af69b910d8f0b;hpb=c3832abc23bb0907df2deb6751f4a46d213675b7;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma index ef3d1c20b..6110714a1 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/csx_cnx_vector.ma @@ -12,45 +12,34 @@ (* *) (**************************************************************************) -(* STRONGLY NORMALIZING TERM VECTORS FOR UNCOUNTED PARALLEL RT-TRANSITION ***) - -include "basic_2/rt_computation/cpxs_theq_vector.ma". -include "basic_2/rt_computation/csx_simple_theq.ma". +include "basic_2/rt_computation/cpxs_teqo_vector.ma". +include "basic_2/rt_computation/csx_simple_teqo.ma". 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 ********) +(* STRONGLY NORMALIZING TERM VECTORS FOR EXTENDED PARALLEL RT-TRANSITION ****) + +(* Properties with normal terms for extended 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 (G) (L): + ∀T. 𝐒❪T❫ → ❪G,L❫ ⊢ ⬈𝐍 T → + ∀Vs. ❪G,L❫ ⊢ ⬈*𝐒 Vs → ❪G,L❫ ⊢ ⬈*𝐒 ⒶVs.T. +#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 + @csx_appl_simple_teqo /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 (G) (L): + ∀s,Vs. ❪G,L❫ ⊢ ⬈*𝐒 Vs → ❪G,L❫ ⊢ ⬈*𝐒 ⒶVs.⋆s. +/3 width=6 by csx_applv_cnx, cnx_sort, simple_atom/ qed.