Opaque Mem.storebytes.

Lemma mem_obs_eq_disjoint_lock:
forall f  mc mf mc' mf' pmap pmapF bl1 bl2 ofsl sz
(Hf: f bl1 = Some bl2)
(Hlt: permMapLt pmap (getMaxPerm mc))
(HltF: permMapLt pmapF (getMaxPerm mf))
(Hlt': permMapLt pmap (getMaxPerm mc'))
(HltF': permMapLt pmapF (getMaxPerm 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)
(Hobs_eq: mem_obs_eq f (restrPermMap Hlt) (restrPermMap HltF))
(Hlock: forall ofs, Intv.In ofs (ofsl, ofsl + sz)%Z ->
memval_obs_eq f (ZMap.get ofs (Mem.mem_contents mc') # bl1)
(ZMap.get ofs (Mem.mem_contents mf') # bl2))
(Hstable: forall b ofs,
(b <> bl1 \/ (b = bl1 /\ ~ Intv.In ofs (ofsl, ofsl + sz)%Z)) ->
Mem.perm (restrPermMap Hlt) b ofs Cur Readable ->
ZMap.get ofs (Mem.mem_contents mc) # b = ZMap.get ofs (Mem.mem_contents mc') # b)
(HstableF: forall b ofs,
(b <> bl2 \/ (b = bl2 /\  ~ Intv.In ofs (ofsl, ofsl + sz)%Z)) ->
Mem.perm (restrPermMap HltF) b ofs Cur Readable ->
ZMap.get ofs (Mem.mem_contents mf) # b = ZMap.get ofs (Mem.mem_contents mf') # b),
mem_obs_eq f (restrPermMap Hlt') (restrPermMap HltF').