(*Lenb: moved to mpred Definition assert := environ -> mpred.  (* Unfortunately can't export this abbreviation through SeparationLogic.v because it confuses the Lift system *)
*)

(* Specifications: *)
Lemma address_mapsto_exists:
forall ch v sh (rsh: readable_share sh) loc w0
(RESERVE: forall l', adr_range loc (size_chunk ch) l' -> w0 @ l' = NO Share.bot bot_unreadable),
identity (ghost_of w0) ->
(align_chunk ch | snd loc) ->
exists w, address_mapsto ch (decode_val ch (encode_val ch v)) sh loc w
/\ core w = core w0.
Lemma mapsto_tc_val': forall sh t p v, mapsto sh t p v |-- !! tc_val' t v.
Lemma mapsto_value_range:
forall sh v sz sgn i,
readable_share sh ->
mapsto sh (Tint sz sgn noattr) v (Vint i) =
!! int_range sz sgn i && mapsto sh (Tint sz sgn noattr) v (Vint i).