X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Ffpbs_alt.ma;h=dd982ac3713ddf172be5773b7769185291db97bb;hb=57103fa96f504f9bffca859dd60317162396657f;hp=f04f3587fc803bce96cd970d707802395b0a1c11;hpb=1407456d2415e2872b97ae70cae05eb47c1995c5;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_alt.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_alt.ma index f04f3587f..dd982ac37 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_alt.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_alt.ma @@ -13,6 +13,7 @@ (**************************************************************************) include "basic_2/notation/relations/btpredstaralt_8.ma". +include "basic_2/computation/lpxs_cpxs.ma". include "basic_2/computation/fpbs_fpbs.ma". (* "BIG TREE" PARALLEL COMPUTATION FOR CLOSURES *****************************) @@ -20,11 +21,33 @@ include "basic_2/computation/fpbs_fpbs.ma". (* Note: alternative definition of fpbs *) definition fpbsa: ∀h. sd h → tri_relation genv lenv term ≝ λh,g,G1,L1,T1,G2,L2,T2. - ∃∃L,T. ⦃G1, L1, T1⦄ ⊃* ⦃G2, L, T⦄ & ⦃G2, L⦄ ⊢ T ➡*[h, g] T2 & ⦃G2, L⦄ ⊢ ➡*[h, g] L2. + ∃∃L,T. ⦃G1, L1⦄ ⊢ T1 ➡*[h, g] T & + ⦃G1, L1, T⦄ ⊃* ⦃G2, L, T2⦄ & + ⦃G2, L⦄ ⊢ ➡*[h, g] L2. interpretation "'big tree' parallel computation (closure) alternative" 'BTPRedStarAlt h g G1 L1 T1 G2 L2 T2 = (fpbsa h g G1 L1 T1 G2 L2 T2). +(* Basic properties *********************************************************) + +lemma fpb_fpbsa_trans: ∀h,g,G1,G,L1,L,T1,T. ⦃G1, L1, T1⦄ ≽[h, g] ⦃G, L, T⦄ → + ∀G2,L2,T2. ⦃G, L, T⦄ ≥≥[h, g] ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥≥[h, g] ⦃G2, L2, T2⦄. +#h #g #G1 #G #L1 #L #T1 #T * -G -L -T [ #G #L #T #HG1 | #T #HT1 | #L #HL1 ] +#G2 #L2 #T2 * #L0 #T0 #HT0 #HG2 #L2 +[ elim (fsupq_cpxs_trans … HT0 … HG1) -T + /3 width=7 by fsups_trans, ex3_2_intro/ +| /3 width=5 by cpxs_strap2, ex3_2_intro/ +| lapply (lpx_cpxs_trans … HT0 … HL1) -HT0 #HT10 +] + +(* Main properties **********************************************************) + +theorem fpbs_fpbsa: ∀h,g,G1,G2,L1,L2,T1,T2. + ⦃G1, L1, T1⦄ ≥[h, g] ⦃G2, L2, T2⦄ → ⦃G1, L1, T1⦄ ≥≥[h, g] ⦃G2, L2, T2⦄. +#h #g #G1 #G2 #L1 #L2 #T1 #T2 #H @(fpbs_ind_dx … H) -G1 -L1 -T1 +/2 width=5 by fpb_fpbsa_trans, ex3_2_intro/ +qed. + (* Main inversion lemmas ****************************************************) theorem fpbsa_inv_fpbs: ∀h,g,G1,G2,L1,L2,T1,T2.