Set Implicit Arguments.
Set Strict Implicit.
(** The purpose of this tactic is to try to automatically derive morphisms ** for functions **)

Theorem Proper_red : forall T U (rT : relation T) (rU : relation U) (f : T -> U),
(forall x x', rT x x' -> rU (f x) (f x')) ->
Proper (rT ==> rU) f.