Module MemoryLemmas.
Global Notation "a # b" := (Maps.PMap.get b a) (at level 1).
Transparent Mem.store.
Transparent Mem.alloc.
Definition max_inv mf := forall b ofs, Mem.valid_block mf b ->
permission_at mf b ofs Max = Some Freeable.

Lemma sim_valid_access:
forall (mf m1f : mem)
(b1 b2 : block) (ofs : Z)
(Hm1f: m1f = makeCurMax mf)
(HmaxF: max_inv mf)
(Hvalidb2: Mem.valid_block mf b2)
(Halign: (4 | ofs)%Z),
Mem.valid_access m1f Mint32 b2 ofs Freeable.