X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=inline;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Ffpbc_fpns.ma;h=dd15570ef0e407a07ecdf7c2720224b731bf9685;hb=e76eade57c0454a58b0d58e5484efe9af417847e;hp=672d2d6e4dbee78f10dd66960f6a208803578a80;hpb=d1b944b638846d98dfeb21fa6757e89c609be82a;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbc_fpns.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbc_fpns.ma index 672d2d6e4..dd15570ef 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbc_fpns.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbc_fpns.ma @@ -12,29 +12,23 @@ (* *) (**************************************************************************) -include "basic_2/relocation/lleq_lleq.ma". -include "basic_2/computation/fpns.ma". -include "basic_2/computation/fpbs_alt.ma". +include "basic_2/computation/fpns_fpns.ma". +include "basic_2/computation/fpbu_fpns.ma". include "basic_2/computation/fpbc.ma". -(* ATOMIC "BIG TREE" PROPER PARALLEL COMPUTATION FOR CLOSURES ***************) +(* SINGLE-STEP "BIG TREE" PROPER PARALLEL COMPUTATION FOR CLOSURES **********) -(* Forward lemmas on parallel computation for "big tree" normal forms *******) +(* Properties on parallel computation for "big tree" normal forms ***********) -lemma fpbs_fwd_fpbc_sn: ∀h,g,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄ → - ⦃G1, L1, T1⦄ ⊢ ⋕➡*[h, g] ⦃G2, L2, T2⦄ ∨ - ∃∃G,L,T. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G, L, T⦄ & ⦃G, L, T⦄ ≥[h, g] ⦃G2, L2, T2⦄. -#h #g #G1 #G2 #L1 #L2 #T1 #T2 #H elim(fpbs_fpbsa … H) -H -#L #T #HT1 #HT2 #HL2 elim (eq_term_dec T1 T) #H destruct -[ -HT1 elim (fqus_inv_gen … HT2) -HT2 - [ #HT2 @or_intror - /5 width=9 by fpbsa_inv_fpbs, fpbc_fqup, ex3_2_intro, ex2_3_intro, or_intror/ - | * #HG #HL #HT destruct elim (lleq_dec T2 L L2 0) #H - [ /3 width=1 by fpns_intro, or_introl/ - | /5 width=5 by fpbc_lpxs, ex2_3_intro, or_intror/ - ] - ] -| elim (cpxs_neq_inv_step_sn … HT1 H) -HT1 -H - /5 width=9 by fpbsa_inv_fpbs, fpbc_cpxs, cpx_cpxs, ex3_2_intro, ex2_3_intro, or_intror/ -] +lemma fpbc_fpns_trans: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2. ⦃G1, L1, T1⦄ ≻⋕[h, g] ⦃G, L, T⦄ → + ⦃G, L, T⦄ ⊢ ⋕➡*[h, g] ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≻⋕[h, g] ⦃G2, L2, T2⦄. +#h #g #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 * +/3 width=9 by fpns_trans, ex2_3_intro/ +qed-. + +lemma fpns_fpbc_trans: ∀h,g,G1,G,G2,L1,L,L2,T1,T,T2. ⦃G1, L1, T1⦄ ⊢ ⋕➡*[h, g] ⦃G, L, T⦄ → + ⦃G, L, T⦄ ≻⋕[h, g] ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≻⋕[h, g] ⦃G2, L2, T2⦄. +#h #g #G1 #G #G2 #L1 #L #L2 #T1 #T #T2 #H1 * +#G0 #L0 #T0 #H0 #H02 elim (fpns_fpbu_trans … H1 … H0) -G -L -T +/3 width=9 by fpns_trans, ex2_3_intro/ qed-.