(*  NOT TRUE, because readable doesn't constraint NoneP ... Lemma readable_VAL: forall w l, readable l (w_m w) <-> exists sh, (VALspec sh l * TT) w.  *)

Lemma LKspec_precise lock_size: forall R sh l, precise (LKspec lock_size R sh l).
Program Definition core_load (ch: memory_chunk) (l: address) (v: val): pred rmap :=
EX bl: list memval,
!!(length bl = size_chunk_nat ch /\ decode_val ch bl = v /\ (align_chunk ch | snd l)) &&
allp (jam (adr_range_dec l (size_chunk ch))
(fun l' phi => exists sh, exists rsh, phi @ l'
= YES sh rsh (VAL (nth (nat_of_Z (snd l' - snd l)) bl Undef)) NoneP)
(fun _ _ => True)).