An impredicative definition of equality
Consider the following impredicative definition of leibniz equality :
Section leibniz.
Variable A : Set.
Set Implicit Arguments.
Definition leibniz (a b:A) : Prop := forall P:A -> Prop, P a -> P b.
Prove the following theorems (load library Relations before)
Theorem leibniz_sym : symmetric A leibniz.
Theorem leibniz_refl : reflexive A leibniz.
Theorem leibniz_trans : transitive A leibniz.
Theorem leibniz_equiv : equiv A leibniz.
Theorem leibniz_least :
forall R:relation A, reflexive A R -> inclusion A leibniz R.
Theorem leibniz_eq : forall a b:A, leibniz a b -> a = b.
Theorem eq_leibniz : forall a b:A, a = b -> leibniz a b.
Theorem leibniz_ind :
forall (x:A) (P:A -> Prop), P x -> forall y:A, leibniz x y -> P y.
Solution
See also Some remarks