(** ** Properties of [loadbytes]. *)
(** [loadbytes] succeeds if and only if we have read permissions on the accessed memory area. *)

(** Conversely, if [load] returns a value, the corresponding [loadbytes] succeeds and returns a list of bytes which decodes into the result of [load]. *)
Axiom load_loadbytes:
forall chunk m b ofs v,
load chunk m b ofs = Some v ->
exists bytes, loadbytes m b ofs (size_chunk chunk) = Some bytes
/\ v = decode_val chunk bytes.