X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fstatic%2Fffdeq.ma;h=ac4a6b16923480a64738442c06351f5d16099b58;hb=5c186c72f508da0849058afeecc6877cd9ed6303;hp=a5c11db6385286bc0f6a63f8461b8498f66e8edc;hpb=a9e994f4ca8e04743c53ed8cb057ee5dae80c8f9;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/static/ffdeq.ma b/matita/matita/contribs/lambdadelta/basic_2/static/ffdeq.ma index a5c11db63..ac4a6b169 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/static/ffdeq.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/static/ffdeq.ma @@ -12,33 +12,40 @@ (* *) (**************************************************************************) -include "basic_2/notation/relations/lazyeq_8.ma". +include "basic_2/notation/relations/stareqsn_8.ma". include "basic_2/syntax/genv.ma". include "basic_2/static/lfdeq.ma". (* DEGREE-BASED EQUIVALENCE FOR CLOSURES ON REFERRED ENTRIES ****************) -inductive ffdeq (h) (o) (G) (L1) (T): relation3 genv lenv term ≝ -| ffdeq_intro: ∀L2. L1 ≡[h, o, T] L2 → ffdeq h o G L1 T G L2 T +inductive ffdeq (h) (o) (G) (L1) (T1): relation3 genv lenv term ≝ +| ffdeq_intro_sn: ∀L2,T2. L1 ≛[h, o, T1] L2 → T1 ≛[h, o] T2 → + ffdeq h o G L1 T1 G L2 T2 . interpretation "degree-based equivalence on referred entries (closure)" - 'LazyEq h o G1 L1 T1 G2 L2 T2 = (ffdeq h o G1 L1 T1 G2 L2 T2). + 'StarEqSn h o G1 L1 T1 G2 L2 T2 = (ffdeq h o G1 L1 T1 G2 L2 T2). -(* Basic properties *********************************************************) +(* Basic_properties *********************************************************) -lemma ffdeq_sym: ∀h,o. tri_symmetric … (ffdeq h o). -#h #o #G1 #G2 #L1 #L2 #T1 #T2 * -G1 -L1 -T1 /3 width=1 by ffdeq_intro, lfdeq_sym/ -qed-. +lemma ffdeq_intro_dx (h) (o) (G): ∀L1,L2,T2. L1 ≛[h, o, T2] L2 → + ∀T1. T1 ≛[h, o] T2 → ⦃G, L1, T1⦄ ≛[h, o] ⦃G, L2, T2⦄. +/3 width=3 by ffdeq_intro_sn, tdeq_lfdeq_div/ qed. (* Basic inversion lemmas ***************************************************) -lemma ffdeq_inv_gen: ∀h,o,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≡[h, o] ⦃G2, L2, T2⦄ → - ∧∧ G1 = G2 & L1 ≡[h, o, T1] L2 & T1 = T2. +lemma ffdeq_inv_gen_sn: ∀h,o,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≛[h, o] ⦃G2, L2, T2⦄ → + ∧∧ G1 = G2 & L1 ≛[h, o, T1] L2 & T1 ≛[h, o] T2. #h #o #G1 #G2 #L1 #L2 #T1 #T2 * -G2 -L2 -T2 /2 width=1 by and3_intro/ qed-. +lemma ffdeq_inv_gen_dx: ∀h,o,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ≛[h, o] ⦃G2, L2, T2⦄ → + ∧∧ G1 = G2 & L1 ≛[h, o, T2] L2 & T1 ≛[h, o] T2. +#h #o #G1 #G2 #L1 #L2 #T1 #T2 * -G2 -L2 -T2 +/3 width=3 by tdeq_lfdeq_conf, and3_intro/ +qed-. + (* Basic_2A1: removed theorems 6: fleq_refl fleq_sym fleq_inv_gen fleq_trans fleq_canc_sn fleq_canc_dx