Section ALLOC.
Variable m1: mem.
Variables lo hi: Z.
Variable m2: mem.
Variable b: Values.block.
Hypothesis ALLOC: Mem.alloc m1 lo hi = (m2, b).
Transparent Mem.alloc.
Opaque Mem.alloc.
Definition alloc_right_sm (mu: SM_Injection) sp: SM_Injection :=
Build_SM_Injection (locBlocksSrc mu)
(fun b => eq_block b sp || locBlocksTgt mu b)
(pubBlocksSrc mu) (pubBlocksTgt mu)
(local_of mu)
(extBlocksSrc mu) (extBlocksTgt mu)
(frgnBlocksSrc mu) (frgnBlocksTgt mu) (extern_of mu).

Lemma alloc_left_sm_DomSrc: forall mu b1 b2 delta,
DomSrc (alloc_left_sm mu b1 b2 delta) = fun b => eq_block b b1 || DomSrc mu b.