Hint Extern 1 (Transitive (list_rel _)) =>
eapply list_rel_trans : typeclass_instances.
Global Instance length_rel:
Monotonic
(@length)
(forallr R : rel, list_rel R ++> eq).
Global Instance app_rel:
Monotonic
(@app)
(forallr R : rel, list_rel R ++> list_rel R ++> list_rel R).
Global Instance map_rel:
Monotonic
(@map)
(forallr RA, forallr RB, (RA ++> RB) ++> list_rel RA ++> list_rel RB).
Global Instance fold_right_rel:
Monotonic
(@fold_right)
(forallr RA, forallr RB, (RB ++> RA ++> RA) ++> RA ++> list_rel RB ++> RA).
Global Instance fold_left_rel:
Monotonic
(@fold_left)
(forallr RA, forallr RB, (RA ++> RB ++> RA) ++> list_rel RB ++> RA ++> RA).
(** ** Monotonicity of logical connectives *)

Lemma fold_impl_rstep (A B: Prop):
RStep (impl A B) (A -> B).