(** * Abstracting read-only global variables *)
Definition romem := PTree.t ablock.
Definition romatch  (m: mem) (rm: romem) : Prop :=
forall b id ab,
bc b = BCglob id ->
rm!id = Some ab ->
pge Glob ab.(ab_summary)
/\ bmatch m b ab
/\ forall ofs, ~Mem.perm m b ofs Max Writable.

Lemma romatch_alloc:
forall m b lo hi m' rm,
Mem.alloc m lo hi = (m', b) ->
bc_below bc (Mem.nextblock m) ->
romatch m rm ->
romatch m' rm.