X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Fcpre_cpre.ma;h=5ddc528f4367d3a83f998accc7392fad8c9ab39a;hb=f308429a0fde273605a2330efc63268b4ac36c99;hp=4fd4181197ac9f3391937c26e49053735e64b098;hpb=e9f96fa56226dfd74de214c89d827de0c5018ac7;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpre_cpre.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpre_cpre.ma index 4fd418119..5ddc528f4 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpre_cpre.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/cpre_cpre.ma @@ -12,17 +12,29 @@ (* *) (**************************************************************************) -include "basic_2/computation/cprs_cprs.ma". -include "basic_2/computation/cpre.ma". +include "basic_2/rt_computation/cprs_cnr.ma". +include "basic_2/rt_computation/cprs_cprs.ma". +include "basic_2/rt_computation/cpre.ma". -(* EVALUATION FOR CONTEXT-SENSITIVE PARALLEL REDUCTION ON TERMS *************) +(* EVALUATION FOR CONTEXT-SENSITIVE PARALLEL R-TRANSITION ON TERMS *********) + +(* Properties with context-sensitive parallel r-computation for terms ******) + +lemma cpre_cprs_conf (h) (G) (L) (T): + ∀T1. ⦃G,L⦄ ⊢ T ➡*[h] T1 → ∀T2. ⦃G,L⦄ ⊢ T ➡*[h] 𝐍⦃T2⦄ → ⦃G,L⦄ ⊢ T1 ➡*[h] 𝐍⦃T2⦄. +#h #G #L #T0 #T1 #HT01 #T2 * #HT02 #HT2 +elim (cprs_conf … HT01 … HT02) -T0 #T0 #HT10 #HT20 +lapply (cprs_inv_cnr_sn … HT20 HT2) -HT20 #H destruct +/2 width=1 by conj/ +qed-. (* Main properties *********************************************************) (* Basic_1: was: nf2_pr3_confluence *) -theorem cpre_mono: ∀G,L,T,T1. ⦃G, L⦄ ⊢ T ➡* 𝐍⦃T1⦄ → ∀T2. ⦃G, L⦄ ⊢ T ➡* 𝐍⦃T2⦄ → T1 = T2. -#G #L #T #T1 * #H1T1 #H2T1 #T2 * #H1T2 #H2T2 -elim (cprs_conf … H1T1 … H1T2) -T #T #HT1 ->(cprs_inv_cnr1 … HT1 H2T1) -T1 #HT2 ->(cprs_inv_cnr1 … HT2 H2T2) -T2 // +theorem cpre_mono (h) (G) (L) (T): + ∀T1. ⦃G,L⦄ ⊢ T ➡*[h] 𝐍⦃T1⦄ → ∀T2. ⦃G,L⦄ ⊢ T ➡*[h] 𝐍⦃T2⦄ → T1 = T2. +#h #G #L #T0 #T1 * #HT01 #HT1 #T2 * #HT02 #HT2 +elim (cprs_conf … HT01 … HT02) -T0 #T0 #HT10 #HT20 +>(cprs_inv_cnr_sn … HT10 HT1) -T1 +>(cprs_inv_cnr_sn … HT20 HT2) -T2 // qed-.