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 storebytes_split:
forall m b ofs bytes1 bytes2 m2,
storebytes m b ofs (bytes1 ++ bytes2) = Some m2 ->
exists m1,
storebytes m b ofs bytes1 = Some m1
/\ storebytes m1 b (ofs + Z.of_nat(length bytes1)) bytes2 = Some m2.