Instance ProperViaEquiv: Proper (eqA ==> eqA ==> iff) R.

(* Specifications: *)
Theorem StrictTotalOrder_is_StrictTotalOrderViaEquiv: forall {A} (R: relation A), StrictTotalOrder R <-> StrictTotalOrderViaEquiv R eq.
Lemma intersection_Reflexive: Reflexive R1 -> Reflexive R2 -> Reflexive (intersection R1 R2).
Lemma intersection_Symmetric: Symmetric R1 -> Symmetric R2 -> Symmetric (intersection R1 R2).
Lemma intersection_Transitive: Transitive R1 -> Transitive R2 -> Transitive (intersection R1 R2).
Lemma union_IrreflViaEquiv: IrreflViaEquiv R1 eqA -> IrreflViaEquiv R2 eqA -> IrreflViaEquiv (union R1 R2) eqA.
Theorem intersection_Equivalence: Equivalence R1 -> Equivalence R2 -> Equivalence (intersection R1 R2).