Definition ContentMap_EE_ValidBlock_FUN m1 m1' m2 b ofs: memval :=
  if Mem.perm_dec m1 b ofs Max Nonempty
  then ZMap.get ofs (PMap.get b m1'.(Mem.mem_contents))
  else ZMap.get ofs (PMap.get b m2.(Mem.mem_contents)).Definition ContentMap_EE_InvalidBlock_FUN m1' b ofs: memval:=
   ZMap.get ofs (PMap.get b m1'.(Mem.mem_contents)).Definition ContentMap_EE_Block_FUN m1 m1' m2 b ofs : memval:=
  if plt b (Mem.nextblock m2)
  then ContentMap_EE_ValidBlock_FUN m1 m1' m2 b ofs
  else ContentMap_EE_InvalidBlock_FUN m1' b ofs.

(* Specifications: *)
Lemma CM_block_EE_exists: forall (m1 m1' m2:Mem.mem) b, exists M : ZMap.t memval, fst M = Undef /\ forall ofs, ZMap.get ofs M = ContentMap_EE_Block_FUN m1 m1' m2 b ofs.
Lemma CM_block_EE_existsT: forall (m1 m1' m2:Mem.mem) b, { M : ZMap.t memval | fst M = Undef /\ forall ofs, ZMap.get ofs M = ContentMap_EE_Block_FUN m1 m1' m2 b ofs}.