X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Ffpbg_lift.ma;h=6b5b5719b6710813c68cb6b21088753a03cdca43;hb=5d669f492522b055f76c627eb89da97d0be05c2a;hp=9afc2523baffe2eb8f31b25be54c28cc72030236;hpb=c28e3d93b588796bfbbfd6b2ec9dd86f405b2b00;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbg_lift.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbg_lift.ma index 9afc2523b..6b5b5719b 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/fpbg_lift.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/fpbg_lift.ma @@ -12,28 +12,17 @@ (* *) (**************************************************************************) -include "basic_2/unfold/lsstas_lift.ma". -include "basic_2/reduction/fpb_lift.ma". -include "basic_2/reduction/fpbc_lift.ma". +include "basic_2/computation/fpbu_lift.ma". include "basic_2/computation/fpbg.ma". -(* "BIG TREE" PARALLEL COMPUTATION FOR CLOSURES *****************************) +(* GENERAL "BIG TREE" PARALLEL COMPUTATION FOR CLOSURES *********************) (* Advanced properties ******************************************************) -lemma lsstas_fpbg: ∀h,g,G,L,T1,T2,l2. ⦃G, L⦄ ⊢ T1 •*[h, g, l2] T2 → (T1 = 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 -[ #H elim H // -| #l2 #T #T2 #HT1 #HT2 #IHT1 #HT12 #l1 #Hl21 - elim (term_eq_dec T1 T) #H destruct [ -IHT1 |] - [ elim (le_inv_plus_l … Hl21) -Hl21 #_ #Hl1 - >(plus_minus_m_m … Hl1) -Hl1 /3 width=5 by ssta_fpbc, fpbg_inj/ - | #Hl1 >commutative_plus in Hl21; #Hl21 - elim (le_inv_plus_l … Hl21) -Hl21 #Hl12 #Hl21 - lapply (lsstas_da_conf … HT1 … Hl1) -HT1 - >(plus_minus_m_m … Hl12) -Hl12 - /4 width=5 by ssta_fpb, fpbg_strap1/ - ] -] -qed. +lemma lstas_fpbg: ∀h,g,G,L,T1,T2,l2. ⦃G, L⦄ ⊢ T1 •*[h, l2] T2 → (T1 = T2 → ⊥) → + ∀l1. l2 ≤ l1 → ⦃G, L⦄ ⊢ T1 ▪[h, g] l1 → ⦃G, L, T1⦄ >≡[h, g] ⦃G, L, T2⦄. +/5 width=5 by fpbc_fpbg, fpbu_fpbc, lstas_fpbu/ qed. + +lemma sta_fpbg: ∀h,g,G,L,T1,T2,l. ⦃G, L⦄ ⊢ T1 ▪[h, g] l+1 → + ⦃G, L⦄ ⊢ T1 •[h] T2 → ⦃G, L, T1⦄ >≡[h, g] ⦃G, L, T2⦄. +/4 width=2 by fpbc_fpbg, fpbu_fpbc, sta_fpbu/ qed.