X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fmatita%2Fnlibrary%2Flogic%2Fequality.ma;h=715423143e7185debaf41b69046ba5e1ccde202b;hb=7fd4f2f66fb8fe010bbd2bfe1f6b542c2da6c83f;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..715423143 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; #P; #p; #x0; #p0; napply (eq_rect_CProp0_r' ??? p0); 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.