X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fground%2Flib%2Fexteq.ma;h=8c8f218a17c287f6d91d45d0f187cbcb27204262;hb=d06053844638d88936d711b66fddbcca2a9add1c;hp=5b655e686a5cec35230bedbe9bc819e9d717ed6e;hpb=6604a232815858a6c75dd25ac45abd68438077ff;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/ground/lib/exteq.ma b/matita/matita/contribs/lambdadelta/ground/lib/exteq.ma index 5b655e686..8c8f218a1 100644 --- a/matita/matita/contribs/lambdadelta/ground/lib/exteq.ma +++ b/matita/matita/contribs/lambdadelta/ground/lib/exteq.ma @@ -12,62 +12,68 @@ (* *) (**************************************************************************) -include "ground/notation/relations/doteq_4.ma". +include "ground/notation/relations/circled_eq_4.ma". include "ground/lib/relations.ma". -(* EXTENSIONAL EQUIVALENCE **************************************************) +(* EXTENSIONAL EQUIVALENCE FOR FUNCTIONS ************************************) definition exteq (A,B:Type[0]): relation (A → B) ≝ λf1,f2. ∀a. f1 a = f2 a. interpretation "extensional equivalence" - 'DotEq A B f1 f2 = (exteq A B f1 f2). + 'CircledEq A B f1 f2 = (exteq A B f1 f2). (* Basic constructions ******************************************************) -lemma exteq_refl (A) (B): reflexive … (exteq A B). +lemma exteq_refl (A) (B): + reflexive … (exteq A B). // qed. -lemma exteq_repl (A) (B): replace_2 … (exteq A B) (exteq A B) (exteq A B). +lemma exteq_repl (A) (B): + replace_2 … (exteq A B) (exteq A B) (exteq A B). // qed-. -lemma exteq_sym (A) (B): symmetric … (exteq A B). +lemma exteq_sym (A) (B): + symmetric … (exteq A B). /2 width=1 by exteq_repl/ qed-. -lemma exteq_trans (A) (B): Transitive … (exteq A B). +lemma exteq_trans (A) (B): + Transitive … (exteq A B). /2 width=1 by exteq_repl/ qed-. -lemma exteq_canc_sn (A) (B): left_cancellable … (exteq A B). +lemma exteq_canc_sn (A) (B): + left_cancellable … (exteq A B). /2 width=1 by exteq_repl/ qed-. -lemma exteq_canc_dx (A) (B): right_cancellable … (exteq A B). +lemma exteq_canc_dx (A) (B): + right_cancellable … (exteq A B). /2 width=1 by exteq_repl/ qed-. -(* Constructions with function composition **********************************) +(* Constructions with compose ***********************************************) lemma compose_repl_fwd_dx (A) (B) (C) (g) (f1) (f2): - f1 ≐{A,B} f2 → g ∘ f1 ≐{A,C} g ∘ f2. + f1 ⊜{A,B} f2 → g ∘ f1 ⊜{A,C} g ∘ f2. #A #B #C #g #f1 #f2 #Hf12 #a whd in ⊢ (??%%); // qed. lemma compose_repl_bak_dx (A) (B) (C) (g) (f1) (f2): - f1 ≐{A,B} f2 → g ∘ f2 ≐{A,C} g ∘ f1. + f1 ⊜{A,B} f2 → g ∘ f2 ⊜{A,C} g ∘ f1. /3 width=1 by compose_repl_fwd_dx, exteq_sym/ qed. lemma compose_repl_fwd_sn (A) (B) (C) (g1) (g2) (f): - g1 ≐{B,C} g2 → g1 ∘ f ≐{A,C} g2 ∘ f. + g1 ⊜{B,C} g2 → g1 ∘ f ⊜{A,C} g2 ∘ f. #A #B #C #g1 #g2 #f #Hg12 #a whd in ⊢ (??%%); // qed. lemma compose_repl_bak_sn (A) (B) (C) (g1) (g2) (f): - g1 ≐{B,C} g2 → g2 ∘ f ≐{A,C} g1 ∘ f. + g1 ⊜{B,C} g2 → g2 ∘ f ⊜{A,C} g1 ∘ f. /3 width=1 by compose_repl_fwd_sn, exteq_sym/ qed. lemma compose_assoc (A1) (A2) (A3) (A4) (f3:A3→A4) (f2:A2→A3) (f1:A1→A2): - f3 ∘ (f2 ∘ f1) ≐ f3 ∘ f2 ∘ f1. + f3 ∘ (f2 ∘ f1) ⊜ f3 ∘ f2 ∘ f1. // qed.