Section Defs.
Context {A : Type}.
(** We rebind crelational properties in separate classes to be able to overload each proof. *)
Class Reflexive (R : crelation A) :=
reflexivity : forall x : A, R x x.
Definition complement (R : crelation A) : crelation A :=
fun x y => R x y -> False.
(** Opaque for proof-search. *)
Typeclasses Opaque complement iffT.
Global Instance relation_implication_preorder : PreOrder (@subrelation A).

Lemma PartialOrder_inverse `(PartialOrder eqA R) : PartialOrder eqA (flip R).