Corollary mem_obs_eq_domain_ren:
    forall f m m',
      mem_obs_eq f m m' ->
      domain_memren f m.

Lemma alloc_obs_eq: forall f m m' lo hi m2 m2' b b' (Hobs_eq: mem_obs_eq f m m') (Halloc: Mem.alloc m lo hi = (m2, b)) (Halloc': Mem.alloc m' lo hi = (m2', b')), exists f', f' b = Some b' /\ mem_obs_eq f' m2 m2' /\ ren_incr f f' /\ ren_separated f f' m m' /\ (exists p : positive, Mem.nextblock m2 = (Mem.nextblock m + p)%positive /\ Mem.nextblock m2' = (Mem.nextblock m' + p)%positive) /\ (forall b0 : block, Mem.valid_block m2' b0 -> ~ Mem.valid_block m' b0 -> f' (Z.to_pos match - Z.pos_sub (Mem.nextblock m') (Mem.nextblock m) with | 0 => Z.pos b0 | Z.pos y' => Z.pos (b0 + y') | Z.neg y' => Z.pos_sub b0 y' end) = Some b0 /\ f (Z.to_pos match - Z.pos_sub (Mem.nextblock m') (Mem.nextblock m) with | 0 => Z.pos b0 | Z.pos y' => Z.pos (b0 + y') | Z.neg y' => Z.pos_sub b0 y' end) = None) /\ (Mem.nextblock m = Mem.nextblock m' -> (forall b1 b3 : block, f b1 = Some b3 -> b1 = b3) -> forall b1 b0 : block, f' b1 = Some b0 -> b1 = b0).