Module Type KNOT_INPUT__COVARIANT_HERED_PROP_OTH_REL.
Parameter F : functor.
Parameter other : Type.
Parameter Rel : forall A, F A -> F A -> Prop.
Parameter Rel_fmap : forall A B (f:A->B) x y,
Rel A x y -> Rel B (fmap F f x) (fmap F f y).
Parameter Rel_unfmap : forall A B (f:A->B) x y,
Rel B (fmap F f x) y ->
exists y', Rel A x y' /\ fmap F f y' = y.

Axiom Rel_refl : forall A x, Rel A x x.
Axiom Rel_trans : forall A x y z,
Rel A x y -> Rel A y z -> Rel A x z.