Hint Resolve mem_erasure_idempotent mem_erasure_dilute_1
mem_erasure_restr: mem_erasure.
Record mem_erasure' (m m': mem) :=
{ perm_le':
forall b ofs k,
Mem.valid_block m b->
Mem.perm_order'' ((Mem.mem_access m')#b ofs k)
((Mem.mem_access m)#b ofs k);
erased_contents': forall b ofs,
memval_erasure (ZMap.get ofs ((Mem.mem_contents m) # b))
(ZMap.get ofs ((Mem.mem_contents m') # b));
erased_nb': Mem.nextblock m = Mem.nextblock m'
}.

Lemma mem_erasure'_erase:
forall m m',
mem_erasure' m m' ->
mem_erasure m (erasePerm m').