Definition update_abs (incr: list byte) (a: list byte) (a': list byte) :=
a' = a ++ incr.

(* Specifications: *)
Lemma update_abs_eq:
forall msg a a',
(update_abs msg a a' <->
exists blocks,
s256a_hashed a' = s256a_hashed a ++ blocks /\
s256a_data a ++ msg = intlist_to_bytelist blocks ++ s256a_data a').
Lemma array_at_memory_block:
forall {cs: compspecs} sh t gfs lo hi v p n,
sizeof (nested_field_array_type t gfs lo hi) = n ->
lo <= hi ->
array_at sh t gfs lo hi v p |--
memory_block sh n (field_address0 t (ArraySubsc lo :: gfs) p).