X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Ffpbs_lift.ma;h=ab8f6608d9b4cace0c62a502604a68e5acbb137c;hb=07d915d411ffabeb0c7cd678f00cbeca53ae8276;hp=19136df6f849e37968224da0f7a5c79ebcbdbb09;hpb=c28e3d93b588796bfbbfd6b2ec9dd86f405b2b00;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_lift.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_lift.ma index 19136df6f..ab8f6608d 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_lift.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbs_lift.ma @@ -12,25 +12,26 @@ (* *) (**************************************************************************) -include "basic_2/unfold/lsstas_lift.ma". include "basic_2/reduction/fpb_lift.ma". +include "basic_2/computation/cpxs_lift.ma". include "basic_2/computation/fpbs.ma". (* "BIG TREE" PARALLEL COMPUTATION FOR CLOSURES *****************************) (* Advanced properties ******************************************************) +lemma lsstas_fpbs: ∀h,g,G,L,T1,T2,l2. ⦃G, L⦄ ⊢ T1 •*[h, g, l2] T2 → + ∀l1. l2 ≤ l1 → ⦃G, L⦄ ⊢ T1 ▪[h, g] l1 → ⦃G, L, T1⦄ ≥[h, g] ⦃G, L, T2⦄. +/3 width=5 by cpxs_fpbs, lsstas_cpxs/ qed. + lemma ssta_fpbs: ∀h,g,G,L,T,U,l. ⦃G, L⦄ ⊢ T ▪[h, g] l+1 → ⦃G, L⦄ ⊢ T •[h, g] U → ⦃G, L, T⦄ ≥[h, g] ⦃G, L, U⦄. -/3 width=2 by fpb_fpbs, ssta_fpb/ qed. +/4 width=2 by fpb_fpbs, ssta_fpb/ qed. -lemma lsstas_fpbs: ∀h,g,G,L,T1,T2,l2. ⦃G, L⦄ ⊢ T1 •*[h, g, l2] T2 → - ∀l1. l2 ≤ l1 → ⦃G, L⦄ ⊢ T1 ▪[h, g] l1 → ⦃G, L, T1⦄ ≥[h, g] ⦃G, L, T2⦄. -#h #g #G #L #T1 #T2 #l2 #H @(lsstas_ind_dx … H) -l2 -T2 // -#l2 #T #T2 #HT1 #HT2 #IHT1 #l1 >commutative_plus #Hl21 #Hl1 -elim (le_inv_plus_l … Hl21) -Hl21 #Hl12 #Hl21 -lapply (lsstas_da_conf … HT1 … Hl1) -HT1 ->(plus_minus_m_m … Hl12) -Hl12 -/3 width=5 by ssta_fpb, fpbs_strap1/ -qed. +(* Note: this is used in the closure proof *) +lemma cpr_lpr_ssta_fpbs: ∀h,g,G,L1,L2,T1,T2,U2,l2. + ⦃G, L1⦄ ⊢ T1 ➡ T2 → ⦃G, L1⦄ ⊢ ➡ L2 → + ⦃G, L2⦄ ⊢ T2 ▪[h, g] l2+1 → ⦃G, L2⦄ ⊢ T2 •[h, g] U2 → + ⦃G, L1, T1⦄ ≥[h, g] ⦃G, L2, U2⦄. +/4 width=5 by fpbs_strap1, cpr_lpr_fpbs, ssta_cpx, fpb_cpx/ qed.