(** *Monotonicity (inject_incr)*)
Class Inject_Monotonic {A:Type}(R: meminj -> relation A):=
monotonicity: forall j j' a1 a2,
R j a1 a2 ->
inject_incr j j' ->
R j' a1 a2.
Ltac emonotonicity:=
try (unfold Inject_Monotonic);
eapply monotonicity.
Instance list_map_rel_monotonicity:
forall {A} {R: meminj -> relation A},
Inject_Monotonic R ->
Inject_Monotonic (fun j => list_map_rel (R j)).

Lemma list_map_rel_monotonicity':
forall {A} {R: meminj -> relation A},
(forall j j' vals1 vals2,
R j vals1 vals2 ->
inject_incr j j' ->
R j' vals1 vals2) ->
forall j j' vals1 vals2,
(list_map_rel (R j)) vals1 vals2 ->
inject_incr j j' ->
(list_map_rel (R j')) vals1 vals2.