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

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

Lemma sound_stack_ext: forall m' bc stk m bound, sound_stack bc stk m bound -> (forall b ofs n bytes, Plt b bound -> bc b = BCinvalid -> n >= 0 -> Mem.loadbytes m' b ofs n = Some bytes -> Mem.loadbytes m b ofs n = Some bytes) -> sound_stack bc stk m' bound.