Program Definition flip_Irreflexive `(Irreflexive R) : Irreflexive (flip R) :=
      irreflexivity (R:=R).Program Definition flip_Symmetric `(Symmetric R) : Symmetric (flip R) :=
      fun x y H => symmetry (R:=R) H.Program Definition flip_Asymmetric `(Asymmetric R) : Asymmetric (flip R) :=
      fun x y H H' => asymmetry (R:=R) H H'.Program Definition flip_Transitive `(Transitive R) : Transitive (flip R) :=
      fun x y z H H' => transitivity (R:=R) H' H.

(* Specifications: *)
Program Lemma flip_Antisymmetric `(Antisymmetric eqA R) : Antisymmetric eqA (flip R).
Lemma flip_PreOrder `(PreOrder R) : PreOrder (flip R).
Lemma flip_StrictOrder `(StrictOrder R) : StrictOrder (flip R).
Lemma flip_PER `(PER R) : PER (flip R).
Lemma flip_Equivalence `(Equivalence R) : Equivalence (flip R).
Lemma complement_Irreflexive `(Reflexive R) : Irreflexive (complement R).
Lemma complement_Symmetric `(Symmetric R) : Symmetric (complement R).
Program Lemma flip_Antisymmetric `(Antisymmetric eqA R) : Antisymmetric eqA (flip R).
Lemma flip_PreOrder `(PreOrder R) : PreOrder (flip R).
Lemma flip_StrictOrder `(StrictOrder R) : StrictOrder (flip R).
Lemma flip_PER `(PER R) : PER (flip R).
Lemma flip_Equivalence `(Equivalence R) : Equivalence (flip R).
Lemma complement_Irreflexive `(Reflexive R) : Irreflexive (complement R).
Lemma complement_Symmetric `(Symmetric R) : Symmetric (complement R).