Definition substopt {A} (ret: option ident) (v: val) (P: environ -> A)  : environ -> A :=
   match ret with
   | Some id => subst id v P
   | None => P
   end.

Lemma free_juicy_mem_ghost: forall jm m b lo hi H, ghost_of (m_phi (free_juicy_mem jm m b lo hi H)) = ghost_of (m_phi jm).