Section STOREBYTES.
Variable m1: mem.
Variable b: block.
Variable ofs: Z.
Variable bytes: list memval.
Variable m2: mem.
Hypothesis STORE: storebytes m1 b ofs bytes = Some m2.
Local Hint Resolve perm_storebytes_1 perm_storebytes_2: mem.
Local Hint Resolve storebytes_valid_access_1 storebytes_valid_access_2: mem.
Local Hint Resolve storebytes_valid_block_1 storebytes_valid_block_2: mem.
End STOREBYTES.

Theorem storev_int64_split:
forall m a v m',
storev Mint64 m a v = Some m' -> Archi.ptr64 = false ->
exists m1,
storev Mint32 m a (if Archi.big_endian then Val.hiword v else Val.loword v) = Some m1
/\ storev Mint32 m1 (Val.add a (Vint (Int.repr 4))) (if Archi.big_endian then Val.loword v else Val.hiword v) = Some m'.