Opaque Mem.storebytes.

Corollary mem_obs_eq_store :
forall (mc mf mc' mf' : mem) (rmap rmapF : access_map) (bl1 bl2 : block) (ofsl : Z) f v
(Hlt : permMapLt rmap (getMaxPerm mc)) (HltF : permMapLt rmapF (getMaxPerm mf))
(Hlt2 : permMapLt rmap (getMaxPerm mc'))
(Hlt2F : permMapLt rmapF (getMaxPerm mf'))
(Hfl: f bl1 = Some bl2)
(Hinjective: forall b1 b1' b2 : block,
f b1 = Some b2 -> f b1' = Some b2 -> b1 = b1')
(Hmem_obs_eq: mem_obs_eq f (restrPermMap Hlt) (restrPermMap HltF))
(Hcontents: Mem.mem_contents mc' =
PMap.set bl1 (Mem.setN (encode_val Mint32 (Vint v)) ofsl
(Mem.mem_contents mc) # bl1) (Mem.mem_contents mc))
(HcontentsF: Mem.mem_contents mf' =
PMap.set bl2 (Mem.setN (encode_val Mint32 (Vint v)) ofsl
(Mem.mem_contents mf) # bl2) (Mem.mem_contents mf))
(Hvb: forall b : block, Mem.valid_block mc b <-> Mem.valid_block mc' b)
(HvbF: forall b : block, Mem.valid_block mf b <-> Mem.valid_block mf' b),
mem_obs_eq f (restrPermMap Hlt2) (restrPermMap Hlt2F).