X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frt_computation%2Ffpbg_feqg.ma;h=1cd93d5f7e1550e60512ae1000a9cd14dae70412;hb=cc178d85bc4fec05b6a9dd176f338b3275beb3d9;hp=fca623b64b6a01c5d7c67f689878e5c968a59b0d;hpb=e23331eef5817eaa6c5e1c442d1d6bbb18650573;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/fpbg_feqg.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/fpbg_feqg.ma index fca623b64..1cd93d5f7 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/fpbg_feqg.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/fpbg_feqg.ma @@ -22,32 +22,32 @@ include "basic_2/rt_computation/fpbg_fpbs.ma". (* Basic_2A1: uses: fpbg_fleq_trans *) lemma fpbg_feqg_trans (S) (G) (L) (T): reflexive … S → symmetric … S → - ∀G1,L1,T1. ❪G1,L1,T1❫ > ❪G,L,T❫ → - ∀G2,L2,T2. ❪G,L,T❫ ≛[S] ❪G2,L2,T2❫ → ❪G1,L1,T1❫ > ❪G2,L2,T2❫. + ∀G1,L1,T1. ❨G1,L1,T1❩ > ❨G,L,T❩ → + ∀G2,L2,T2. ❨G,L,T❩ ≛[S] ❨G2,L2,T2❩ → ❨G1,L1,T1❩ > ❨G2,L2,T2❩. /3 width=8 by fpbg_fpb_trans, feqg_fpb/ qed-. (* Basic_2A1: uses: fleq_fpbg_trans *) lemma feqg_fpbg_trans (S) (G) (L) (T): reflexive … S → symmetric … S → - ∀G1,L1,T1. ❪G1,L1,T1❫ ≛[S] ❪G,L,T❫ → - ∀G2,L2,T2. ❪G,L,T❫ > ❪G2,L2,T2❫ → ❪G1,L1,T1❫ > ❪G2,L2,T2❫. + ∀G1,L1,T1. ❨G1,L1,T1❩ ≛[S] ❨G,L,T❩ → + ∀G2,L2,T2. ❨G,L,T❩ > ❨G2,L2,T2❩ → ❨G1,L1,T1❩ > ❨G2,L2,T2❩. /3 width=8 by fpb_fpbg_trans, feqg_fpb/ qed-. (* Properties with generic equivalence for terms ****************************) lemma fpbg_teqg_div (S): reflexive … S → symmetric … S → - ∀G1,G2,L1,L2,T1,T. ❪G1,L1,T1❫ > ❪G2,L2,T❫ → - ∀T2. T2 ≛[S] T → ❪G1,L1,T1❫ > ❪G2,L2,T2❫. + ∀G1,G2,L1,L2,T1,T. ❨G1,L1,T1❩ > ❨G2,L2,T❩ → + ∀T2. T2 ≛[S] T → ❨G1,L1,T1❩ > ❨G2,L2,T2❩. /4 width=8 by fpbg_feqg_trans, teqg_feqg, teqg_sym/ qed-. (* Advanced inversion lemmas of parallel rst-computation on closures ********) (* Basic_2A1: was: fpbs_fpbg *) lemma fpbs_inv_fpbg: - ∀G1,G2,L1,L2,T1,T2. ❪G1,L1,T1❫ ≥ ❪G2,L2,T2❫ → - ∨∨ ❪G1,L1,T1❫ ≅ ❪G2,L2,T2❫ - | ❪G1,L1,T1❫ > ❪G2,L2,T2❫. + ∀G1,G2,L1,L2,T1,T2. ❨G1,L1,T1❩ ≥ ❨G2,L2,T2❩ → + ∨∨ ❨G1,L1,T1❩ ≅ ❨G2,L2,T2❩ + | ❨G1,L1,T1❩ > ❨G2,L2,T2❩. #G1 #G2 #L1 #L2 #T1 #T2 #H elim (fpbs_inv_fpbc_sn … H) -H [ /2 width=1 by or_introl/ @@ -58,8 +58,8 @@ qed-. (* Basic_2A1: this was the definition of fpbg *) lemma fpbg_inv_fpbc_fpbs (G1) (G2) (L1) (L2) (T1) (T2): - ❪G1,L1,T1❫ > ❪G2,L2,T2❫ → - ∃∃G,L,T. ❪G1,L1,T1❫ ≻ ❪G,L,T❫ & ❪G,L,T❫ ≥ ❪G2,L2,T2❫. + ❨G1,L1,T1❩ > ❨G2,L2,T2❩ → + ∃∃G,L,T. ❨G1,L1,T1❩ ≻ ❨G,L,T❩ & ❨G,L,T❩ ≥ ❨G2,L2,T2❩. #G1 #G2 #L1 #L2 #T1 #T2 #H elim (fpbg_inv_gen … H) -H #G3 #L3 #T3 #G4 #L4 #T4 #H13 #H34 #H42 elim (fpbs_inv_fpbc_sn … H13) -H13 @@ -72,9 +72,9 @@ qed-. (* Advanced properties of parallel rst-computation on closures **************) lemma fpbs_fpb_trans: - ∀F1,F2,K1,K2,T1,T2. ❪F1,K1,T1❫ ≥ ❪F2,K2,T2❫ → - ∀G2,L2,U2. ❪F2,K2,T2❫ ≻ ❪G2,L2,U2❫ → - ∃∃G1,L1,U1. ❪F1,K1,T1❫ ≻ ❪G1,L1,U1❫ & ❪G1,L1,U1❫ ≥ ❪G2,L2,U2❫. + ∀F1,F2,K1,K2,T1,T2. ❨F1,K1,T1❩ ≥ ❨F2,K2,T2❩ → + ∀G2,L2,U2. ❨F2,K2,T2❩ ≻ ❨G2,L2,U2❩ → + ∃∃G1,L1,U1. ❨F1,K1,T1❩ ≻ ❨G1,L1,U1❩ & ❨G1,L1,U1❩ ≥ ❨G2,L2,U2❩. #F1 #F2 #K1 #K2 #T1 #T2 #H elim (fpbs_inv_fpbg … H) -H [ #H12 #G2 #L2 #U2 #H22 lapply (feqg_fpbc_trans … H12 … H22) -F2 -K2 -T2