X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Ffsb_aaa.ma;h=5a8d5d2408d9beee1b0d2191349b82e52982cf5d;hb=e90313fa853ba63f29416c2d0de40b13c913e567;hp=2718398739480e9e4c4b4698b2f975c042a524f0;hpb=ff7754f834f937bfe2384c7703cf63f552885395;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/fsb_aaa.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/fsb_aaa.ma index 271839873..5a8d5d240 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/fsb_aaa.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/fsb_aaa.ma @@ -16,39 +16,39 @@ include "basic_2/computation/fpbs_aaa.ma". include "basic_2/computation/csx_aaa.ma". include "basic_2/computation/fsb_csx.ma". -(* "BIG TREE" STRONGLY NORMALIZING TERMS ************************************) +(* "QRST" STRONGLY NORMALIZING CLOSURES *************************************) (* Main properties **********************************************************) -(* Note: this is the "big tree" theorem ("small step" version) *) -theorem aaa_fsb: ∀h,g,G,L,T,A. ⦃G, L⦄ ⊢ T ⁝ A → ⦃G, L⦄ ⊢ ⦥[h, g] T. +(* Note: this is the "big tree" theorem ("RST" version) *) +theorem aaa_fsb: ∀h,g,G,L,T,A. ⦃G, L⦄ ⊢ T ⁝ A → ⦥[h, g] ⦃G, L, T⦄. /3 width=2 by aaa_csx, csx_fsb/ qed. -(* Note: this is the "big tree" theorem ("big step" version) *) -theorem aaa_fsba: ∀h,g,G,L,T,A. ⦃G, L⦄ ⊢ T ⁝ A → ⦃G, L⦄ ⊢ ⦥⦥[h, g] T. +(* Note: this is the "big tree" theorem ("QRST" version) *) +theorem aaa_fsba: ∀h,g,G,L,T,A. ⦃G, L⦄ ⊢ T ⁝ A → ⦥⦥[h, g] ⦃G, L, T⦄. /3 width=2 by fsb_fsba, aaa_fsb/ qed. (* Advanced eliminators on atomica arity assignment for terms ***************) -fact aaa_ind_fpbu_aux: ∀h,g. ∀R:relation3 genv lenv term. - (∀G1,L1,T1,A. ⦃G1, L1⦄ ⊢ T1 ⁝ A → - (∀G2,L2,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ → R G2 L2 T2) → - R G1 L1 T1 - ) → - ∀G,L,T. ⦃G, L⦄ ⊢ ⬊*[h, g] T → ∀A. ⦃G, L⦄ ⊢ T ⁝ A → R G L T. -#h #g #R #IH #G #L #T #H @(csx_ind_fpbu … H) -G -L -T +fact aaa_ind_fpb_aux: ∀h,g. ∀R:relation3 genv lenv term. + (∀G1,L1,T1,A. ⦃G1, L1⦄ ⊢ T1 ⁝ A → + (∀G2,L2,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ → R G2 L2 T2) → + R G1 L1 T1 + ) → + ∀G,L,T. ⦃G, L⦄ ⊢ ⬊*[h, g] T → ∀A. ⦃G, L⦄ ⊢ T ⁝ A → R G L T. +#h #g #R #IH #G #L #T #H @(csx_ind_fpb … H) -G -L -T #G1 #L1 #T1 #H1 #IH1 #A1 #HTA1 @IH -IH // #G2 #L2 #T2 #H12 elim (fpbs_aaa_conf h g … G2 … L2 … T2 … HTA1) -A1 -/2 width=2 by fpbu_fwd_fpbs/ +/2 width=2 by fpb_fpbs/ qed-. -lemma aaa_ind_fpbu: ∀h,g. ∀R:relation3 genv lenv term. - (∀G1,L1,T1,A. ⦃G1, L1⦄ ⊢ T1 ⁝ A → - (∀G2,L2,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ → R G2 L2 T2) → - R G1 L1 T1 - ) → - ∀G,L,T,A. ⦃G, L⦄ ⊢ T ⁝ A → R G L T. -/4 width=4 by aaa_ind_fpbu_aux, aaa_csx/ qed-. +lemma aaa_ind_fpb: ∀h,g. ∀R:relation3 genv lenv term. + (∀G1,L1,T1,A. ⦃G1, L1⦄ ⊢ T1 ⁝ A → + (∀G2,L2,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ → R G2 L2 T2) → + R G1 L1 T1 + ) → + ∀G,L,T,A. ⦃G, L⦄ ⊢ T ⁝ A → R G L T. +/4 width=4 by aaa_ind_fpb_aux, aaa_csx/ qed-. fact aaa_ind_fpbg_aux: ∀h,g. ∀R:relation3 genv lenv term. (∀G1,L1,T1,A. ⦃G1, L1⦄ ⊢ T1 ⁝ A →