End EFF_INJ_SIMULATION_PLUS.
End Eff_INJ_SIMU_DIAGRAMS.
Definition compose_sm (mu1 mu2 : SM_Injection) : SM_Injection :=
Build_SM_Injection
(locBlocksSrc mu1) (locBlocksTgt mu2)
(pubBlocksSrc mu1) (pubBlocksTgt mu2)
(compose_meminj (local_of mu1) (local_of mu2))
(extBlocksSrc mu1) (extBlocksTgt mu2)
(frgnBlocksSrc mu1) (frgnBlocksTgt mu2)
(compose_meminj (extern_of mu1) (extern_of mu2)).

Lemma extern_incr_inject_incr:
forall nu12 nu23 nu' (WDnu' : SM_wd nu')
(EXT: extern_incr (compose_sm nu12 nu23) nu')
(GlueInvNu: SM_wd nu12 /\ SM_wd nu23 /\
locBlocksTgt nu12 = locBlocksSrc nu23 /\
extBlocksTgt nu12 = extBlocksSrc nu23 /\
(forall b, pubBlocksTgt nu12 b = true ->
pubBlocksSrc nu23 b = true) /\
(forall b, frgnBlocksTgt nu12 b = true ->
frgnBlocksSrc nu23 b = true)),
inject_incr (compose_meminj (as_inj nu12) (as_inj nu23)) (as_inj nu').