Definition mod_after_alloc (phi: rmap) (lo hi: Z) (b: block) :=
  proj1_sig (make_rmap (mod_after_alloc' phi lo hi b) (ghost_of phi)
    _
    (mod_after_alloc'_ok phi lo hi b) (ghost_of_approx phi)).

(* Specifications: *)
Lemma adr_range_inv: forall loc loc' n, ~ adr_range loc n loc' -> fst loc <> fst loc' \/ (fst loc=fst loc' /\ ~snd loc <= snd loc' < snd loc + n).
Lemma dry_noperm_juicy_nonreadable : forall m loc, access_at (m_dry m) loc Cur = None -> ~readable loc (m_phi m).
Lemma fullempty_after_alloc : forall m1 m2 lo n b ofs, alloc m1 lo n = (m2, b) -> access_at m2 (b, ofs) Cur = None \/ access_at m2 (b, ofs) Cur = Some Freeable.
Lemma alloc_dry_unchanged_on : forall m1 m2 loc lo hi b0, alloc m1 lo hi = (m2, b0) -> ~adr_range (b0,lo) (hi-lo) loc -> access_at m1 loc = access_at m2 loc /\ (access_at m1 loc Cur <> None -> contents_at m1 loc= contents_at m2 loc).
Lemma adr_range_zle_fact : forall b lo hi loc, adr_range (b,lo) (hi-lo) loc -> zle lo (snd loc) && zlt (snd loc) hi = true.
Lemma alloc_dry_updated_on : forall m1 m2 lo hi b loc, alloc m1 lo hi = (m2, b) -> adr_range (b, lo) (hi - lo) loc -> access_at m2 loc Cur=Some Freeable /\ contents_at m2 loc=Undef.
Lemma resource_nodecay_decay: forall b phi1 phi2, resource_nodecay b phi1 phi2 -> resource_decay b phi1 phi2.
Lemma resource_decay_trans: forall b b' m1 m2 m3, (b <= b')%positive -> resource_decay b m1 m2 -> resource_decay b' m2 m3 -> resource_decay b m1 m3.
Lemma level_store_juicy_mem: forall jm m ch b i v H, level (store_juicy_mem jm m ch b i v H) = level jm.
Lemma level_storebytes_juicy_mem: forall jm m b i bytes H, level (storebytes_juicy_mem jm m b i bytes H) = level jm.
Lemma can_age1_juicy_mem: forall j r, age (m_phi j) r -> exists j', age1 j = Some j'.
Lemma can_age_jm: forall jm, age1 (m_phi jm) <> None -> exists jm', age jm jm'.
Lemma age_jm_dry: forall {jm jm'}, age jm jm' -> m_dry jm = m_dry jm'.
Lemma age_jm_phi: forall {jm jm'}, age jm jm' -> age (m_phi jm) (m_phi jm').
Lemma contents_cohere_age m : hereditary age (contents_cohere m).
Lemma access_cohere_age m : hereditary age (access_cohere m).
Lemma max_access_cohere_age m : hereditary age (max_access_cohere m).
Lemma alloc_cohere_age m : hereditary age (alloc_cohere m).