X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda_delta%2Fbasic_2%2Fcomputation%2Fcprs_cprs.ma;h=518c2bd07295a88765cbe26ed0a2785cfaf8971e;hb=e0827239f4b44f2af9c7f88c4c7c41f2a193ae37;hp=16c1a6256164a873d0b3c143a4d6b32163d2459e;hpb=eb918fc784eacd2094e3986ba321ef47690d9983;p=helm.git diff --git a/matita/matita/contribs/lambda_delta/basic_2/computation/cprs_cprs.ma b/matita/matita/contribs/lambda_delta/basic_2/computation/cprs_cprs.ma index 16c1a6256..518c2bd07 100644 --- a/matita/matita/contribs/lambda_delta/basic_2/computation/cprs_cprs.ma +++ b/matita/matita/contribs/lambda_delta/basic_2/computation/cprs_cprs.ma @@ -12,10 +12,10 @@ (* *) (**************************************************************************) -include "Basic_2/reducibility/cpr_lift.ma". -include "Basic_2/reducibility/cpr_cpr.ma". -include "Basic_2/reducibility/lcpr_cpr.ma". -include "Basic_2/computation/cprs_lcpr.ma". +include "basic_2/reducibility/cpr_lift.ma". +include "basic_2/reducibility/cpr_cpr.ma". +include "basic_2/reducibility/lcpr_cpr.ma". +include "basic_2/computation/cprs_lcpr.ma". (* CONTEXT-SENSITIVE PARALLEL COMPUTATION ON TERMS **************************) @@ -40,6 +40,11 @@ lemma cpr_abbr2: ∀L,V1,V2. L ⊢ V1 ➡ V2 → ∀T1,T2. L. ⓓV2 ⊢ T1 ➡ T lapply (lcpr_cpr_trans (L. ⓓV1) … HT12) /2 width=1/ qed. +(* Basic_1: was: pr3_strip *) +lemma cprs_strip: ∀L,T1,T. L ⊢ T ➡* T1 → ∀T2. L ⊢ T ➡ T2 → + ∃∃T0. L ⊢ T1 ➡ T0 & L ⊢ T2 ➡* T0. +/3 width=3/ qed. + (* Advanced inversion lemmas ************************************************) (* Basic_1: was pr3_gen_appl *) @@ -75,6 +80,7 @@ theorem cprs_conf: ∀L,T1,T. L ⊢ T ➡* T1 → ∀T2. L ⊢ T ➡* T2 → theorem cprs_trans: ∀L,T1,T. L ⊢ T1 ➡* T → ∀T2. L ⊢ T ➡* T2 → L ⊢ T1 ➡* T2. /2 width=3/ qed. +(* Basic_1: was: pr3_flat *) lemma cprs_flat: ∀I,L,T1,T2. L ⊢ T1 ➡* T2 → ∀V1,V2. L ⊢ V1 ➡* V2 → L ⊢ ⓕ{I} V1. T1 ➡* ⓕ{I} V2. T2. #I #L #T1 #T2 #HT12 #V1 #V2 #HV12 @(cprs_ind … HV12) -V2 /2 width=1/ @@ -82,6 +88,13 @@ lemma cprs_flat: ∀I,L,T1,T2. L ⊢ T1 ➡* T2 → ∀V1,V2. L ⊢ V1 ➡* V2 @(cprs_trans … IHV1) -IHV1 /2 width=1/ qed. +lemma cprs_abbr: ∀L,V1,T1,T2. L. ⓓV1 ⊢ T1 ➡* T2 → ∀V2. L ⊢ V1 ➡* V2 → + L ⊢ ⓓV1. T1 ➡* ⓓV2. T2. +#L #V1 #T1 #T2 #HT12 #V2 #HV12 @(cprs_ind … HV12) -V2 /2 width=1/ +#V #V2 #_ #HV2 #IHV1 +@(cprs_trans … IHV1) -IHV1 /2 width=1/ +qed. + (* Basic_1: was only: pr3_pr2_pr3_t pr3_wcpr0_t *) lemma lcpr_cprs_trans: ∀L1,L2. L1 ⊢ ➡ L2 → ∀T1,T2. L2 ⊢ T1 ➡* T2 → L1 ⊢ T1 ➡* T2.