(** ** Construction 1: allocating the stack frame at function entry *)

Ltac splitall := repeat (match goal with |- _ /\ _ => split end).

Lemma sound_stack_storev: forall chunk m addr v m' bc aaddr stk bound, Mem.storev chunk m addr v = Some m' -> vmatch bc addr aaddr -> sound_stack bc stk m bound -> sound_stack bc stk m' bound.