X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Fcsn_vector.ma;h=c655be403a1e87dd661c69d1a594385ac16a3061;hb=ebc33b6d5b68400bc8411973ed4c9ed50d0c52a6;hp=a0f887d6fe3dc46255127aad44a9438cd2742c27;hpb=e02bd4f3df78b5cc374d49d0ddf48b311188f514;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/csn_vector.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/csn_vector.ma index a0f887d6f..c655be403 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/csn_vector.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/csn_vector.ma @@ -15,24 +15,26 @@ include "basic_2/grammar/term_vector.ma". include "basic_2/computation/csn.ma". -(* CONTEXT-SENSITIVE STRONGLY NORMALIZING TERM VECTORS **********************) +(* CONTEXT-SENSITIVE EXTENDED STRONGLY NORMALIZING TERM VECTORS *************) -definition csnv: lenv → predicate (list term) ≝ - λL. all … (csn L). +definition csnv: ∀h. sd h → lenv → predicate (list term) ≝ + λh,g,L. all … (csn h g L). interpretation "context-sensitive strong normalization (term vector)" - 'SN L Ts = (csnv L Ts). + 'SN h g L Ts = (csnv h g L Ts). (* Basic inversion lemmas ***************************************************) -lemma csnv_inv_cons: ∀L,T,Ts. L ⊢ ⬊* T @ Ts → L ⊢ ⬊* T ∧ L ⊢ ⬊* Ts. +lemma csnv_inv_cons: ∀h,g,L,T,Ts. ⦃h, L⦄ ⊢ ⬊*[g] T @ Ts → + ⦃h, L⦄ ⊢ ⬊*[g] T ∧ ⦃h, L⦄ ⊢ ⬊*[g] Ts. normalize // qed-. (* Basic forward lemmas *****************************************************) -lemma csn_fwd_applv: ∀L,T,Vs. L ⊢ ⬊* Ⓐ Vs. T → L ⊢ ⬊* Vs ∧ L ⊢ ⬊* T. -#L #T #Vs elim Vs -Vs /2 width=1/ +lemma csn_fwd_applv: ∀h,g,L,T,Vs. ⦃h, L⦄ ⊢ ⬊*[g] Ⓐ Vs.T → + ⦃h, L⦄ ⊢ ⬊*[g] Vs ∧ ⦃h, L⦄ ⊢ ⬊*[g] T. +#h #g #L #T #Vs elim Vs -Vs /2 width=1/ #V #Vs #IHVs #HVs lapply (csn_fwd_pair_sn … HVs) #HV lapply (csn_fwd_flat_dx … HVs) -HVs #HVs