(* *)
(**************************************************************************)
-set "baseuri" "cic:/matita/logic/equality/".
-
include "higher_order_defs/relations.ma".
inductive eq (A:Type) (x:A) : A \to Prop \def
(*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).
+ 'eq t x y = (cic:/matita/logic/equality/eq.ind#xpointer(1/1) t 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)).
+ 'neq t x y = (cic:/matita/logic/connectives/Not.con
+ (cic:/matita/logic/equality/eq.ind#xpointer(1/1) t x y)).
theorem eq_rect':
\forall A. \forall x:A. \forall P: \forall y:A. x=y \to Type.
intros. elim (sym_eq ? ? ? H1).assumption.
qed.
+theorem eq_elim_r':
+ \forall A:Type.\forall x:A. \forall P: A \to Set.
+ P x \to \forall y:A. y=x \to P y.
+intros. elim (sym_eq ? ? ? H).assumption.
+qed.
+
+theorem eq_elim_r'':
+ \forall A:Type.\forall x:A. \forall P: A \to Type.
+ P x \to \forall y:A. y=x \to P y.
+intros. elim (sym_eq ? ? ? H).assumption.
+qed.
+
theorem eq_f: \forall A,B:Type.\forall f:A\to B.
\forall x,y:A. x=y \to f x = f y.
intros.elim H.apply refl_eq.
qed.
(* *)
-coercion cic:/matita/logic/equality/sym_eq.con.
-coercion cic:/matita/logic/equality/eq_f.con.
+coercion sym_eq.
+coercion eq_f.
(* *)
default "equality"
cic:/matita/logic/equality/transitive_eq.con
cic:/matita/logic/equality/eq_ind.con
cic:/matita/logic/equality/eq_elim_r.con
+ cic:/matita/logic/equality/eq_rec.con
+ cic:/matita/logic/equality/eq_elim_r'.con
+ cic:/matita/logic/equality/eq_rect.con
+ cic:/matita/logic/equality/eq_elim_r''.con
cic:/matita/logic/equality/eq_f.con
(* *)
cic:/matita/logic/equality/eq_OF_eq.con.