(** Kill all stack locations between 0 and [sz], and mark everything else as live.  This reflects the effect of freeing the stack block at a [Ireturn] or [Itailcall] instruction. *)
Definition nmem_dead_stack (sz: Z) :=
NMem (ISet.interval 0 sz) (PTree.empty _).

Lemma nlive_dead_stack:
forall sz b' i, b' <> sp \/ ~(0 <= i < sz) -> nlive (nmem_dead_stack sz) b' i.