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 compose_sm_extern_incr:
forall mu12 mu12' mu23 mu23'
(inc12: extern_incr mu12 mu12')
(inc23: extern_incr mu23 mu23')
(FRG': forall b1 b2 d1, foreign_of mu12' b1 = Some(b2,d1) ->
exists b3 d2, foreign_of mu23' b2 = Some(b3,d2))
(WD12': SM_wd mu12') (WD23': SM_wd mu23'),
extern_incr (compose_sm mu12 mu23) (compose_sm mu12' mu23').