Definition mem_equiv' m1 m2 :=
(forall x, Mem.perm_order' (access_at m1 x Cur) Readable -> contents_at m1 x = contents_at m2 x) /\
Mem.perm m1 = Mem.perm m2 /\
Mem.nextblock m1 = Mem.nextblock m2.
Definition mem_lessalloc' m1 m2 :=
(forall x, Mem.perm_order' (access_at m1 x Cur) Readable -> contents_at m1 x = contents_at m2 x) /\
Mem.perm m1 = Mem.perm m2 /\
(Mem.nextblock m1 <= Mem.nextblock m2)%positive.

Lemma mem_lessdef_weak_valid_pointer:
forall m1 m2 b z,
mem_lessdef m1 m2 ->
Mem.weak_valid_pointer m1 b z = true ->
Mem.weak_valid_pointer m2 b z = true.