Opaque Mem.load.

(* Specifications: *)
Lemma loadv_val_obs:
forall (mc mf : mem) (f:memren)
(vptr1 vptr2 : val) chunk v1
(Hload: Mem.loadv chunk mc vptr1 = Some v1)
(Hf: val_obs f vptr1 vptr2)
(Hinjective: forall b0 b1' b3 : block, f b0 = Some b3 -> f b1' = Some b3 -> b0 = b1')
(Hobs_eq: strong_mem_obs_eq f mc mf),
exists v2,
Mem.loadv chunk mf vptr2 = Some v2 /\
val_obs f v1 v2.
Lemma loadv_None_obs:
forall (mc mf : mem) (f:memren)
(vptr1 vptr2 : val) chunk
(Hload: Mem.loadv chunk mc vptr1 = None)
(Hf: val_obs f vptr1 vptr2)
(Hinjective: forall b0 b1' b3 : block, f b0 = Some b3 -> f b1' = Some b3 -> b0 = b1')
(Hobs_eq: strong_mem_obs_eq f mc mf),
Mem.loadv chunk mf vptr2 = None.