(** Preservation of allocations *)

(* Specifications: *)
Lemma alloc_right_inj:
forall f m1 m2 lo hi b2 m2',
mem_inj f m1 m2 ->
alloc m2 lo hi = (m2', b2) ->
mem_inj f m1 m2'.
Lemma alloc_left_unmapped_inj:
forall f m1 m2 lo hi m1' b1,
mem_inj f m1 m2 ->
alloc m1 lo hi = (m1', b1) ->
f b1 = None ->
mem_inj f m1' m2.
Lemma alloc_right_inj:
forall f m1 m2 lo hi b2 m2',
mem_inj f m1 m2 ->
alloc m2 lo hi = (m2', b2) ->
mem_inj f m1 m2'.
Lemma alloc_left_unmapped_inj:
forall f m1 m2 lo hi m1' b1,
mem_inj f m1 m2 ->
alloc m1 lo hi = (m1', b1) ->
f b1 = None ->
mem_inj f m1' m2.