X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fmatita%2Fnlibrary%2Flogic%2Fequality.ma;h=ac8a2a20c7ddf7934997f2e80c87d5eb86833840;hb=d22268d5af7c9f0ccda8f75a0e6f9d21028418bd;hp=d940b97c0eec3fcc80694496fdc9a1c9022ed2b8;hpb=9a7ec6adbfd12e5305800a033d1b471afe316abd;p=helm.git diff --git a/helm/software/matita/nlibrary/logic/equality.ma b/helm/software/matita/nlibrary/logic/equality.ma index d940b97c0..ac8a2a20c 100644 --- a/helm/software/matita/nlibrary/logic/equality.ma +++ b/helm/software/matita/nlibrary/logic/equality.ma @@ -13,10 +13,29 @@ (**************************************************************************) include "logic/connectives.ma". +include "properties/relations.ma". -ninductive eq (A: Type) (a: A) : A → Prop ≝ +ninductive eq (A: Type[0]) (a: A) : A → CProp[0] ≝ refl: eq A a a. - + +nlemma eq_rect_CProp0_r': + ∀A.∀a,x.∀p:eq ? x a.∀P: ∀x:A. eq ? x a → CProp[0]. P a (refl A a) → P x p. + #A; #a; #x; #p; ncases p; #P; #H; nassumption. +nqed. + +nlemma eq_rect_CProp0_r: + ∀A.∀a.∀P: ∀x:A. eq ? x a → CProp[0]. P a (refl A a) → ∀x.∀p:eq ? x a.P x p. + #A; #a; #x; #p; #x0; #p0; napply eq_rect_CProp0_r'; nassumption. +nqed. + interpretation "leibnitz's equality" 'eq t x y = (eq t x y). -interpretation "leibnitz's non-equality" 'neq t x y = (Not (eq t x y)). \ No newline at end of file +interpretation "leibnitz's non-equality" 'neq t x y = (Not (eq t x y)). + +ndefinition EQ: ∀A:Type[0]. equivalence_relation A. + #A; napply mk_equivalence_relation + [ napply eq + | napply refl + | #x; #y; #H; nrewrite < H; napply refl + | #x; #y; #z; #Hyx; #Hxz; nrewrite < Hxz; nassumption] +nqed.