X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Ffsb.ma;h=1616402dec981972dba696ee60e6fe0405a57dc0;hb=e76eade57c0454a58b0d58e5484efe9af417847e;hp=0ad3212fc9a796610ad45e9bbea49b379d3b13fe;hpb=f418a6f9fe878f17a2c7afa0d13a361cce140694;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/fsb.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/fsb.ma index 0ad3212fc..1616402de 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/fsb.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/fsb.ma @@ -13,13 +13,14 @@ (**************************************************************************) include "basic_2/notation/relations/btsn_5.ma". -include "basic_2/reduction/fpbc.ma". +include "basic_2/computation/fpbu.ma". +include "basic_2/computation/csx_alt.ma". (* "BIG TREE" STRONGLY NORMALIZING TERMS ************************************) inductive fsb (h) (g): relation3 genv lenv term ≝ | fsb_intro: ∀G1,L1,T1. ( - ∀G2,L2,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ → fsb h g G2 L2 T2 + ∀G2,L2,T2. ⦃G1, L1, T1⦄ ≻[h, g] ⦃G2, L2, T2⦄ → fsb h g G2 L2 T2 ) → fsb h g G1 L1 T1 . @@ -29,15 +30,18 @@ interpretation (* Basic eliminators ********************************************************) -theorem fsb_ind_alt: ∀h,g. ∀R: relation3 …. ( - ∀G1,L1,T1. ( - ∀G2,L2,T2. ⦃G1, L1, T1⦄≽ [h, g] ⦃G2, L2, T2⦄ → - (|G1| = |G2| → |L1| = |L2| → T1 = T2 → ⊥) → ⦃G2, L2⦄ ⊢ ⦥[h,g] T2 - ) → ( - ∀G2,L2,T2. ⦃G1, L1, T1⦄≽ [h, g] ⦃G2, L2, T2⦄ → - (|G1| = |G2| → |L1| = |L2| → T1 = T2 → ⊥) → R G2 L2 T2 - ) → R G1 L1 T1 - ) → - ∀G,L,T. ⦃G, L⦄ ⊢ ⦥[h, g] T → R G L T. -#h #g #R #IH #G #L #T #H elim H -G -L -T /5 width=1 by fpb_fpbc/ +lemma fsb_ind_alt: ∀h,g. ∀R: relation3 …. ( + ∀G1,L1,T1. ⦃G1, L1⦄ ⊢ ⦥[h,g] T1 → ( + ∀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 → R G L T. +#h #g #R #IH #G #L #T #H elim H -G -L -T +/4 width=1 by fsb_intro/ +qed-. + +(* Basic inversion lemmas ***************************************************) + +lemma fsb_inv_csx: ∀h,g,G,L,T. ⦃G, L⦄ ⊢ ⦥[h, g] T → ⦃G, L⦄ ⊢ ⬊*[h, g] T. +#h #g #G #L #T #H elim H -G -L -T /5 width=1 by csx_intro_cprs, fpbu_cpxs/ qed-.