X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Flibrary%2Flogic%2Fequality.ma;h=a5d2f0d1e461cd5c02e95aa5f2eb1ec04f96d5fd;hb=aeb7f0539398561dc84cadf38df14a051dd1ba75;hp=fb7e66edfb5fd84071751997cc9ff8a3812567fd;hpb=244d65f63ca6a736b871f9f91328fe8c5524ff05;p=helm.git diff --git a/helm/matita/library/logic/equality.ma b/helm/matita/library/logic/equality.ma index fb7e66edf..a5d2f0d1e 100644 --- a/helm/matita/library/logic/equality.ma +++ b/helm/matita/library/logic/equality.ma @@ -18,7 +18,15 @@ include "higher_order_defs/relations.ma". inductive eq (A:Type) (x:A) : A \to Prop \def refl_eq : eq A x x. - + +(*CSC: the URI must disappear: there is a bug now *) +interpretation "leibnitz's equality" + 'eq x y = (cic:/matita/logic/equality/eq.ind#xpointer(1/1) _ x y). +(*CSC: the URI must disappear: there is a bug now *) +interpretation "leibnitz's non-equality" + 'neq x y = (cic:/matita/logic/connectives/Not.con + (cic:/matita/logic/equality/eq.ind#xpointer(1/1) _ x y)). + theorem reflexive_eq : \forall A:Type. reflexive A (eq A). simplify.intros.apply refl_eq. qed. @@ -27,19 +35,19 @@ theorem symmetric_eq: \forall A:Type. symmetric A (eq A). simplify.intros.elim H. apply refl_eq. qed. -theorem sym_eq : \forall A:Type.\forall x,y:A. eq A x y \to eq A y x +theorem sym_eq : \forall A:Type.\forall x,y:A. x=y \to y=x \def symmetric_eq. theorem transitive_eq : \forall A:Type. transitive A (eq A). simplify.intros.elim H1.assumption. qed. -theorem trans_eq : \forall A:Type.\forall x,y,z:A. eq A x y \to eq A y z \to eq A x z +theorem trans_eq : \forall A:Type.\forall x,y,z:A. x=y \to y=z \to x=z \def transitive_eq. theorem eq_elim_r: \forall A:Type.\forall x:A. \forall P: A \to Prop. - P x \to \forall y:A. eq A y x \to P y. + P x \to \forall y:A. y=x \to P y. intros. elim sym_eq ? ? ? H1.assumption. qed. @@ -51,12 +59,12 @@ default "equality" cic:/matita/logic/equality/eq_elim_r.con. theorem eq_f: \forall A,B:Type.\forall f:A\to B. -\forall x,y:A. eq A x y \to eq B (f x) (f y). +\forall x,y:A. x=y \to f x = f y. intros.elim H.reflexivity. qed. theorem eq_f2: \forall A,B,C:Type.\forall f:A\to B \to C. \forall x1,x2:A. \forall y1,y2:B. -eq A x1 x2\to eq B y1 y2\to eq C (f x1 y1) (f x2 y2). +x1=x2 \to y1=y2 \to f x1 y1 = f x2 y2. intros.elim H1.elim H.reflexivity. -qed. \ No newline at end of file +qed.