Parameter REACH : mem -> (block -> bool) -> block -> bool.Axiom REACHAX : (* Constructible via FiniteMaps.v, relying on finiteness of memories *)
  forall m B b, REACH m B b = true
  <-> exists L, reach m (fun bb => B bb = true) L b.

Lemma REACH_cons: forall m B b b' z off n, REACH m B b' = true -> Mem.perm m b' z Cur Readable -> ZMap.get z (PMap.get b' (Mem.mem_contents m)) = Pointer b off n -> REACH m B b = true.