<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ac.soton.emfb.compositionFile>
<ac.soton.emfb.composedMachine ac.soton.emfb.compose="true" ac.soton.emfb.name="MW_TD" ac.soton.emfb.newName="MW_TD" name="internal_element1">
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trAmountM" ac.soton.emfb.newName="trAmountM" name="internal_element1"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardInAtmM" ac.soton.emfb.newName="cardInAtmM" name="internal_element2"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="srcAccM" ac.soton.emfb.newName="srcAccM" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="destAccM" ac.soton.emfb.newName="destAccM" name="internal_element4"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendReqTransfer" ac.soton.emfb.newName="sendReqTransfer" name="internal_element5"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespTransferOk" ac.soton.emfb.newName="sendRespTransferOk" name="internal_element6"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespTransferFail" ac.soton.emfb.newName="sendRespTransferFail" name="internal_element7"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAmM" ac.soton.emfb.newName="atmDepAmM" name="internal_element8"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendReqDep" ac.soton.emfb.newName="sendReqDep" name="internal_element9"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespDep" ac.soton.emfb.newName="sendRespDep" name="internal_element10"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ∈ ℙ(ATM)" ac.soton.emfb.name="mMW_T.typing_sendRespTransferFail" ac.soton.emfb.updatedExpression="sendRespTransferFail ∈ ℙ(ATM)" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ∈ ℙ(ATM)" ac.soton.emfb.name="mMW_T.typing_sendRespTransferOk" ac.soton.emfb.updatedExpression="sendRespTransferOk ∈ ℙ(ATM)" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ∈ ℙ(ATM)" ac.soton.emfb.name="mMW_T.typing_sendReqTransfer" ac.soton.emfb.updatedExpression="sendReqTransfer ∈ ℙ(ATM)" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ∈ ATM ⇸ CARD" ac.soton.emfb.name="mMW_T.BalTransfer_4_inv2" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ATM ⇸ CARD" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ∈ ATM ⇸ ℕ1" ac.soton.emfb.name="mMW_T.BalTransfer_4_inv3" ac.soton.emfb.updatedExpression="trAmountM ∈ ATM ⇸ ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="mMW_T.BalTransfer_4_inv21" ac.soton.emfb.updatedExpression="srcAccM ∈ ATM ⇸ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="mMW_T.BalTransfer_4_inv22" ac.soton.emfb.updatedExpression="destAccM ∈ ATM ⇸ ACCOUNT" name="internal_element7"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ∈ ℙ(ATM)" ac.soton.emfb.name="mMW_D.typing_sendRespDep" ac.soton.emfb.updatedExpression="sendRespDep ∈ ℙ(ATM)" name="internal_element8"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ∈ ℙ(ATM)" ac.soton.emfb.name="mMW_D.typing_sendReqDep" ac.soton.emfb.updatedExpression="sendReqDep ∈ ℙ(ATM)" name="internal_element9"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ∈ ATM ⇸ ℕ" ac.soton.emfb.name="mMW_D.Deposit_4_inv6" ac.soton.emfb.updatedExpression="atmDepAmM ∈ ATM ⇸ ℕ" name="internal_element10"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element1">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ ∅" ac.soton.emfb.name="mMW_D.INITIALISATION.act17" ac.soton.emfb.updatedExpression="sendReqDep ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act38" ac.soton.emfb.updatedExpression="trAmountM ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act29" ac.soton.emfb.updatedExpression="sendRespTransferOk ≔  ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act36" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act25" ac.soton.emfb.updatedExpression="sendRespTransferFail ≔  ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ≔ ∅" ac.soton.emfb.name="mMW_D.INITIALISATION.act28" ac.soton.emfb.updatedExpression="atmDepAmM ≔ ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ ∅" ac.soton.emfb.name="mMW_D.INITIALISATION.act19" ac.soton.emfb.updatedExpression="sendRespDep ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔  ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act27" ac.soton.emfb.updatedExpression="sendReqTransfer ≔  ∅" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act40" ac.soton.emfb.updatedExpression="srcAccM ≔ ∅" name="internal_element9"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act41" ac.soton.emfb.updatedExpression="destAccM≔ ∅" name="internal_element10"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="SendReqTransfer" ac.soton.emfb.newName="SendReqTransfer" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔ sendReqTransfer ∪ {a}" ac.soton.emfb.name="mMW_T.SendReqTransfer.act1" ac.soton.emfb.updatedExpression="sendReqTransfer ≔ sendReqTransfer ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM(a) ≔ c" ac.soton.emfb.name="mMW_T.SendReqTransfer.act10" ac.soton.emfb.updatedExpression="cardInAtmM(a) ≔ c" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM(a) ≔ dest_ac" ac.soton.emfb.name="mMW_T.SendReqTransfer.act8" ac.soton.emfb.updatedExpression="destAccM(a) ≔ dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM(a) ≔ src_ac" ac.soton.emfb.name="mMW_T.SendReqTransfer.act7" ac.soton.emfb.updatedExpression="srcAccM(a) ≔ src_ac" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM(a) ≔ am" ac.soton.emfb.name="mMW_T.SendReqTransfer.act6" ac.soton.emfb.updatedExpression="trAmountM(a) ≔ am" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mMW_T.SendReqTransfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mMW_T.SendReqTransfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd8" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd5" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element7"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="RecvReqTransfer" ac.soton.emfb.newName="RecvReqTransfer" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔ sendReqTransfer ∖ {a}" ac.soton.emfb.name="mMW_T.RecvReqTransfer.act5" ac.soton.emfb.updatedExpression="sendReqTransfer ≔ sendReqTransfer ∖ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mMW_T.RecvReqTransfer.typing_src_ac" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.RecvReqTransfer.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mMW_T.RecvReqTransfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mMW_T.RecvReqTransfer.typing_dest_ac" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mMW_T.RecvReqTransfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendReqTransfer" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd1" ac.soton.emfb.updatedExpression="a ∈ sendReqTransfer" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = trAmountM(a)" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd3" ac.soton.emfb.updatedExpression="am = trAmountM(a)" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(trAmountM)" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd2" ac.soton.emfb.updatedExpression="a ∈ dom(trAmountM)" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtmM" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd5" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtmM" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM(a) = dest_ac" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd7" ac.soton.emfb.updatedExpression="destAccM(a) = dest_ac" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM(a) = src_ac" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd6" ac.soton.emfb.updatedExpression="srcAccM(a) = src_ac" name="internal_element11"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(destAccM)" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd9" ac.soton.emfb.updatedExpression="a ∈ dom(destAccM)" name="internal_element12"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(srcAccM)" ac.soton.emfb.name="mMW_T.RecvReqTransfer.grd8" ac.soton.emfb.updatedExpression="a ∈ dom(srcAccM)" name="internal_element13"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="SendRespTransferOk" ac.soton.emfb.newName="SendRespTransferOk" name="internal_element4">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  sendRespTransferOk ∪ {a}" ac.soton.emfb.name="mMW_T.SendRespTransferOk.act3" ac.soton.emfb.updatedExpression="sendRespTransferOk ≔  sendRespTransferOk ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.SendRespTransferOk.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="RecvRespTransferOk" ac.soton.emfb.newName="RecvRespTransferOk" name="internal_element5">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ {a} ⩤ trAmountM" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.act9" ac.soton.emfb.updatedExpression="trAmountM ≔ {a} ⩤ trAmountM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM ≔  {a} ⩤ destAccM" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.act13" ac.soton.emfb.updatedExpression="destAccM ≔  {a} ⩤ destAccM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔  {a} ⩤ srcAccM" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.act12" ac.soton.emfb.updatedExpression="srcAccM ≔  {a} ⩤ srcAccM" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.act11" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  sendRespTransferOk ∖ {a}" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.act2" ac.soton.emfb.updatedExpression="sendRespTransferOk ≔  sendRespTransferOk ∖ {a}" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendRespTransferOk" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespTransferOk" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.RecvRespTransferOk.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="SendRespTransferFail" ac.soton.emfb.newName="SendRespTransferFail" name="internal_element6">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  sendRespTransferFail ∪ {a}" ac.soton.emfb.name="mMW_T.SendRespTransferFail.act3" ac.soton.emfb.updatedExpression="sendRespTransferFail ≔  sendRespTransferFail ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.SendRespTransferFail.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="RecvRespTransferFail" ac.soton.emfb.newName="RecvRespTransferFail" name="internal_element7">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ {a} ⩤ trAmountM" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.act9" ac.soton.emfb.updatedExpression="trAmountM ≔ {a} ⩤ trAmountM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.act11" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔  {a} ⩤ srcAccM" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.act12" ac.soton.emfb.updatedExpression="srcAccM ≔  {a} ⩤ srcAccM" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM ≔  {a} ⩤ destAccM" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.act13" ac.soton.emfb.updatedExpression="destAccM ≔  {a} ⩤ destAccM" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  sendRespTransferFail ∖ {a}" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.act2" ac.soton.emfb.updatedExpression="sendRespTransferFail ≔  sendRespTransferFail ∖ {a}" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendRespTransferFail" ac.soton.emfb.name="mMW_T.RecvRespTransferFail.grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespTransferFail" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="sendReqDeposit" ac.soton.emfb.newName="sendReqDeposit" name="internal_element8">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM(a) ≔ am" ac.soton.emfb.name="mMW_D.sendReqDeposit.act5" ac.soton.emfb.updatedExpression="atmDepAmM(a) ≔ am" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ sendReqDep ∪ {a}" ac.soton.emfb.name="mMW_D.sendReqDeposit.act4" ac.soton.emfb.updatedExpression="sendReqDep ≔ sendReqDep ∪ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM(a) ≔ c" ac.soton.emfb.name="mMW_D.sendReqDeposit.act6" ac.soton.emfb.updatedExpression="cardInAtmM(a) ≔ c" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mMW_D.sendReqDeposit.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mMW_D.sendReqDeposit.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_D.sendReqDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mMW_D.sendReqDeposit.grd2" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element3"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="recvReqDeposit" ac.soton.emfb.newName="recvReqDeposit" name="internal_element9">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ sendReqDep ∖ {a}" ac.soton.emfb.name="mMW_D.recvReqDeposit.act2" ac.soton.emfb.updatedExpression="sendReqDep ≔ sendReqDep ∖ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mMW_D.recvReqDeposit.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendReqDep" ac.soton.emfb.name="mMW_D.recvReqDeposit.grd1" ac.soton.emfb.updatedExpression="a ∈ sendReqDep" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtmM" ac.soton.emfb.name="mMW_D.recvReqDeposit.grd2" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtmM" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mMW_D.recvReqDeposit.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmDepAmM)" ac.soton.emfb.name="mMW_D.recvReqDeposit.grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmDepAmM)" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = atmDepAmM(a)" ac.soton.emfb.name="mMW_D.recvReqDeposit.grd5" ac.soton.emfb.updatedExpression="am = atmDepAmM(a)" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_D.recvReqDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element7"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="sendRespDeposit" ac.soton.emfb.newName="sendRespDeposit" name="internal_element10">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ sendRespDep ∪ {a}" ac.soton.emfb.name="mMW_D.sendRespDeposit.act3" ac.soton.emfb.updatedExpression="sendRespDep ≔ sendRespDep ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_D.sendRespDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="recvRespDeposit" ac.soton.emfb.newName="recvRespDeposit" name="internal_element11">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ≔ {a} ⩤ atmDepAmM" ac.soton.emfb.name="mMW_D.recvRespDeposit.act8" ac.soton.emfb.updatedExpression="atmDepAmM ≔ {a} ⩤ atmDepAmM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="mMW_D.recvRespDeposit.act6" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ sendRespDep ∖ {a}" ac.soton.emfb.name="mMW_D.recvRespDeposit.act5" ac.soton.emfb.updatedExpression="sendRespDep ≔ sendRespDep ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendRespDep" ac.soton.emfb.name="mMW_D.recvRespDeposit.grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespDep" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmM)" ac.soton.emfb.name="mMW_D.recvRespDeposit.grd2" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmM)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_D.recvRespDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmDepAmM)" ac.soton.emfb.name="mMW_D.recvRespDeposit.grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmDepAmM)" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.composedMachine>
<ac.soton.emfb.composedMachine ac.soton.emfb.compose="true" ac.soton.emfb.name="Bank_TD" ac.soton.emfb.newName="Bank_TD" name="internal_element2">
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="bal" ac.soton.emfb.newName="bal" name="internal_element1"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardAcct" ac.soton.emfb.newName="cardAcct" name="internal_element2"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="transferOk" ac.soton.emfb.newName="transferOk" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="transferFail" ac.soton.emfb.newName="transferFail" name="internal_element4"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trAmountB" ac.soton.emfb.newName="trAmountB" name="internal_element5"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardInAtmB" ac.soton.emfb.newName="cardInAtmB" name="internal_element6"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="srcAccB" ac.soton.emfb.newName="srcAccB" name="internal_element7"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="destAccB" ac.soton.emfb.newName="destAccB" name="internal_element8"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvReqTransfer" ac.soton.emfb.newName="recvReqTransfer" name="internal_element9"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmCash" ac.soton.emfb.newName="atmCash" name="internal_element10"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="processedDep" ac.soton.emfb.newName="processedDep" name="internal_element11"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAmB" ac.soton.emfb.newName="atmDepAmB" name="internal_element12"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvReqDep" ac.soton.emfb.newName="recvReqDep" name="internal_element13"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ∈ ℙ(ATM)" ac.soton.emfb.name="mBank_T.typing_recvReqTransfer" ac.soton.emfb.updatedExpression="recvReqTransfer ∈ ℙ(ATM)" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ∈ ℙ(ATM)" ac.soton.emfb.name="mBank_T.typing_transferOk" ac.soton.emfb.updatedExpression="transferOk ∈ ℙ(ATM)" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ∈ ℙ(ATM)" ac.soton.emfb.name="mBank_T.typing_transferFail" ac.soton.emfb.updatedExpression="transferFail ∈ ℙ(ATM)" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal ∈ ACCOUNT ⇸ ℕ" ac.soton.emfb.name="mBank_T.BalTransfer_0_IntegralATM_0_inv1" ac.soton.emfb.updatedExpression="bal ∈ ACCOUNT ⇸ ℕ" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardAcct ∈ CARD ⇸ ACCOUNT" ac.soton.emfb.name="mBank_T.BalTransfer_0_IntegralATM_0_inv2" ac.soton.emfb.updatedExpression="cardAcct ∈ CARD ⇸ ACCOUNT" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="mBank_T.BalTransfer_4_inv23" ac.soton.emfb.updatedExpression="srcAccB ∈ ATM ⇸ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="mBank_T.BalTransfer_4_inv24" ac.soton.emfb.updatedExpression="destAccB ∈ ATM ⇸ ACCOUNT" name="internal_element7"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ∈ ATM ⇸ CARD" ac.soton.emfb.name="mBank_T.BalTransfer_4_inv5" ac.soton.emfb.updatedExpression="cardInAtmB ∈ ATM ⇸ CARD" name="internal_element8"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ∈ ATM ⇸ ℕ1" ac.soton.emfb.name="mBank_T.BalTransfer_4_inv6" ac.soton.emfb.updatedExpression="trAmountB ∈ ATM ⇸ ℕ1" name="internal_element9"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ∈ ℙ(ATM)" ac.soton.emfb.name="mBank_D.typing_recvReqDep" ac.soton.emfb.updatedExpression="recvReqDep ∈ ℙ(ATM)" name="internal_element10"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ∈ ℙ(ATM)" ac.soton.emfb.name="mBank_D.typing_processedDep" ac.soton.emfb.updatedExpression="processedDep ∈ ℙ(ATM)" name="internal_element11"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCash ∈ ATM → ℕ" ac.soton.emfb.name="mBank_D.Deposit_1_inv2" ac.soton.emfb.updatedExpression="atmCash ∈ ATM → ℕ" name="internal_element12"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB ∈ ATM ⇸ ℕ" ac.soton.emfb.name="mBank_D.Deposit_4_inv5" ac.soton.emfb.updatedExpression="atmDepAmB ∈ ATM ⇸ ℕ" name="internal_element13"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element1">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB ≔ ∅" ac.soton.emfb.name="mBank_D.INITIALISATION.act27" ac.soton.emfb.updatedExpression="atmDepAmB ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ≔ ∅" ac.soton.emfb.name="mBank_D.INITIALISATION.act15" ac.soton.emfb.updatedExpression="processedDep ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act32" ac.soton.emfb.updatedExpression="trAmountB ≔ ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act42" ac.soton.emfb.updatedExpression="srcAccB≔ ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB  ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act43" ac.soton.emfb.updatedExpression="destAccB  ≔ ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act31" ac.soton.emfb.updatedExpression="cardInAtmB ≔ ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act15" ac.soton.emfb.updatedExpression="transferFail ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCash ≔ ATM × {0}" ac.soton.emfb.name="mBank_D.INITIALISATION.act4" ac.soton.emfb.updatedExpression="atmCash ≔ ATM × {0}" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act14" ac.soton.emfb.updatedExpression="transferOk ≔ ∅" name="internal_element9"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔  ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act28" ac.soton.emfb.updatedExpression="recvReqTransfer ≔  ∅" name="internal_element10"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act1" ac.soton.emfb.updatedExpression="bal ≔ ∅" name="internal_element11"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardAcct ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act2" ac.soton.emfb.updatedExpression="cardAcct ≔ ∅" name="internal_element12"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ≔ ∅" ac.soton.emfb.name="mBank_D.INITIALISATION.act18" ac.soton.emfb.updatedExpression="recvReqDep ≔ ∅" name="internal_element13"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="RecvReqTransfer" ac.soton.emfb.newName="RecvReqTransfer" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB(a) ≔ dest_ac" ac.soton.emfb.name="mBank_T.RecvReqTransfer.act10" ac.soton.emfb.updatedExpression="destAccB(a) ≔ dest_ac" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔ recvReqTransfer ∪ {a}" ac.soton.emfb.name="mBank_T.RecvReqTransfer.act4" ac.soton.emfb.updatedExpression="recvReqTransfer ≔ recvReqTransfer ∪ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB(a) ≔ am" ac.soton.emfb.name="mBank_T.RecvReqTransfer.act6" ac.soton.emfb.updatedExpression="trAmountB(a) ≔ am" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB(a) ≔ src_ac" ac.soton.emfb.name="mBank_T.RecvReqTransfer.act9" ac.soton.emfb.updatedExpression="srcAccB(a) ≔ src_ac" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB(a) ≔ c" ac.soton.emfb.name="mBank_T.RecvReqTransfer.act8" ac.soton.emfb.updatedExpression="cardInAtmB(a) ≔ c" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_T.RecvReqTransfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.RecvReqTransfer.typing_src_ac" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_T.RecvReqTransfer.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.RecvReqTransfer.typing_dest_ac" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_T.RecvReqTransfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="TransferOK" ac.soton.emfb.newName="TransferOK" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal ≔  bal  {dest_ac ↦ (bal(dest_ac) + am), src_ac ↦(bal(src_ac) − am)}" ac.soton.emfb.name="mBank_T.TransferOK.act1" ac.soton.emfb.updatedExpression="bal ≔  bal  {dest_ac ↦ (bal(dest_ac) + am), src_ac ↦(bal(src_ac) − am)}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ≔ transferOk ∪ {a}" ac.soton.emfb.name="mBank_T.TransferOK.act5" ac.soton.emfb.updatedExpression="transferOk ≔ transferOk ∪ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔ recvReqTransfer ∖ {a}" ac.soton.emfb.name="mBank_T.TransferOK.act6" ac.soton.emfb.updatedExpression="recvReqTransfer ≔ recvReqTransfer ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_T.TransferOK.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_T.TransferOK.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.TransferOK.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_T.TransferOK.grd5" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ↦ src_ac ∈ cardAcct" ac.soton.emfb.name="mBank_T.TransferOK.grd4" ac.soton.emfb.updatedExpression="c ↦ src_ac ∈ cardAcct" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ dom(bal)" ac.soton.emfb.name="mBank_T.TransferOK.grd7" ac.soton.emfb.updatedExpression="dest_ac ∈ dom(bal)" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ dom(bal)" ac.soton.emfb.name="mBank_T.TransferOK.grd6" ac.soton.emfb.updatedExpression="src_ac ∈ dom(bal)" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am &lt; bal(src_ac)" ac.soton.emfb.name="mBank_T.TransferOK.grd9" ac.soton.emfb.updatedExpression="am &lt; bal(src_ac)" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mBank_T.TransferOK.grd8" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(trAmountB)" ac.soton.emfb.name="mBank_T.TransferOK.grd13" ac.soton.emfb.updatedExpression="a ∈ dom(trAmountB)" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac = srcAccB(a)" ac.soton.emfb.name="mBank_T.TransferOK.grd14" ac.soton.emfb.updatedExpression="src_ac = srcAccB(a)" name="internal_element11"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac = destAccB(a)" ac.soton.emfb.name="mBank_T.TransferOK.grd15" ac.soton.emfb.updatedExpression="dest_ac = destAccB(a)" name="internal_element12"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqTransfer" ac.soton.emfb.name="mBank_T.TransferOK.grd24" ac.soton.emfb.updatedExpression="a ∈ recvReqTransfer" name="internal_element13"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = trAmountB(a)" ac.soton.emfb.name="mBank_T.TransferOK.grd16" ac.soton.emfb.updatedExpression="am = trAmountB(a)" name="internal_element14"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="mBank_T.TransferOK.grd11" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmB)" name="internal_element15"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(srcAccB)" ac.soton.emfb.name="mBank_T.TransferOK.grd20" ac.soton.emfb.updatedExpression="a ∈ dom(srcAccB)" name="internal_element16"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c = cardInAtmB(a)" ac.soton.emfb.name="mBank_T.TransferOK.grd12" ac.soton.emfb.updatedExpression="c = cardInAtmB(a)" name="internal_element17"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.TransferOK.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element18"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(destAccB)" ac.soton.emfb.name="mBank_T.TransferOK.grd21" ac.soton.emfb.updatedExpression="a ∈ dom(destAccB)" name="internal_element19"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mBank_T.TransferOK.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element20"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="SendRespTransferOk" ac.soton.emfb.newName="SendRespTransferOk" name="internal_element4">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ≔ {a} ⩤ trAmountB" ac.soton.emfb.name="mBank_T.SendRespTransferOk.act9" ac.soton.emfb.updatedExpression="trAmountB ≔ {a} ⩤ trAmountB" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ≔  transferOk ∖ {a}" ac.soton.emfb.name="mBank_T.SendRespTransferOk.act2" ac.soton.emfb.updatedExpression="transferOk ≔  transferOk ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ {a} ⩤ cardInAtmB" ac.soton.emfb.name="mBank_T.SendRespTransferOk.act11" ac.soton.emfb.updatedExpression="cardInAtmB ≔ {a} ⩤ cardInAtmB" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB ≔  {a} ⩤ srcAccB" ac.soton.emfb.name="mBank_T.SendRespTransferOk.act12" ac.soton.emfb.updatedExpression="srcAccB ≔  {a} ⩤ srcAccB" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB ≔  {a} ⩤ destAccB" ac.soton.emfb.name="mBank_T.SendRespTransferOk.act13" ac.soton.emfb.updatedExpression="destAccB ≔  {a} ⩤ destAccB" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ transferOk" ac.soton.emfb.name="mBank_T.SendRespTransferOk.grd2" ac.soton.emfb.updatedExpression="a ∈ transferOk" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_T.SendRespTransferOk.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="TransferFails" ac.soton.emfb.newName="TransferFails" name="internal_element5">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ≔  transferFail ∪ {a}" ac.soton.emfb.name="mBank_T.TransferFails.act2" ac.soton.emfb.updatedExpression="transferFail ≔  transferFail ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔ recvReqTransfer ∖ {a}" ac.soton.emfb.name="mBank_T.TransferFails.act3" ac.soton.emfb.updatedExpression="recvReqTransfer ≔ recvReqTransfer ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am &gt; bal(src_ac) ∨  c ↦ src_ac ∉ cardAcct" ac.soton.emfb.name="mBank_T.TransferFails.grd9" ac.soton.emfb.updatedExpression="am &gt; bal(src_ac) ∨  c ↦ src_ac ∉ cardAcct" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_T.TransferFails.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ dom(bal)" ac.soton.emfb.name="mBank_T.TransferFails.grd7" ac.soton.emfb.updatedExpression="dest_ac ∈ dom(bal)" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mBank_T.TransferFails.grd8" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_T.TransferFails.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_T.TransferFails.grd5" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ dom(bal)" ac.soton.emfb.name="mBank_T.TransferFails.grd6" ac.soton.emfb.updatedExpression="src_ac ∈ dom(bal)" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="mBank_T.TransferFails.grd11" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmB)" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(destAccB)" ac.soton.emfb.name="mBank_T.TransferFails.grd21" ac.soton.emfb.updatedExpression="a ∈ dom(destAccB)" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c = cardInAtmB(a)" ac.soton.emfb.name="mBank_T.TransferFails.grd12" ac.soton.emfb.updatedExpression="c = cardInAtmB(a)" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(trAmountB)" ac.soton.emfb.name="mBank_T.TransferFails.grd13" ac.soton.emfb.updatedExpression="a ∈ dom(trAmountB)" name="internal_element11"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqTransfer" ac.soton.emfb.name="mBank_T.TransferFails.grd22" ac.soton.emfb.updatedExpression="a ∈ recvReqTransfer" name="internal_element12"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(srcAccB)" ac.soton.emfb.name="mBank_T.TransferFails.grd20" ac.soton.emfb.updatedExpression="a ∈ dom(srcAccB)" name="internal_element13"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.TransferFails.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element14"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.TransferFails.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element15"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac = srcAccB(a)" ac.soton.emfb.name="mBank_T.TransferFails.grd14" ac.soton.emfb.updatedExpression="src_ac = srcAccB(a)" name="internal_element16"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mBank_T.TransferFails.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element17"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac = destAccB(a)" ac.soton.emfb.name="mBank_T.TransferFails.grd15" ac.soton.emfb.updatedExpression="dest_ac = destAccB(a)" name="internal_element18"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = trAmountB(a)" ac.soton.emfb.name="mBank_T.TransferFails.grd16" ac.soton.emfb.updatedExpression="am = trAmountB(a)" name="internal_element19"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="SendRespTransferFail" ac.soton.emfb.newName="SendRespTransferFail" name="internal_element6">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB ≔  {a} ⩤ destAccB" ac.soton.emfb.name="mBank_T.SendRespTransferFail.act13" ac.soton.emfb.updatedExpression="destAccB ≔  {a} ⩤ destAccB" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ≔ {a} ⩤ trAmountB" ac.soton.emfb.name="mBank_T.SendRespTransferFail.act9" ac.soton.emfb.updatedExpression="trAmountB ≔ {a} ⩤ trAmountB" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB ≔  {a} ⩤ srcAccB" ac.soton.emfb.name="mBank_T.SendRespTransferFail.act12" ac.soton.emfb.updatedExpression="srcAccB ≔  {a} ⩤ srcAccB" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ {a} ⩤ cardInAtmB" ac.soton.emfb.name="mBank_T.SendRespTransferFail.act11" ac.soton.emfb.updatedExpression="cardInAtmB ≔ {a} ⩤ cardInAtmB" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ≔  transferFail ∖ {a}" ac.soton.emfb.name="mBank_T.SendRespTransferFail.act2" ac.soton.emfb.updatedExpression="transferFail ≔  transferFail ∖ {a}" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ transferFail" ac.soton.emfb.name="mBank_T.SendRespTransferFail.grd2" ac.soton.emfb.updatedExpression="a ∈ transferFail" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_T.SendRespTransferFail.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="false" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="Deposit" ac.soton.emfb.newName="Deposit" name="internal_element7">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal(acc) ≔ bal(acc) + am" ac.soton.emfb.name="mBank_T.Deposit.act1" ac.soton.emfb.updatedExpression="bal(acc) ≔ bal(acc) + am" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ↦ acc ∈ cardAcct" ac.soton.emfb.name="mBank_T.Deposit.grd5" ac.soton.emfb.updatedExpression="c ↦ acc ∈ cardAcct" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mBank_T.Deposit.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_T.Deposit.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ ACCOUNT" ac.soton.emfb.name="mBank_T.Deposit.grd1" ac.soton.emfb.updatedExpression="acc ∈ ACCOUNT" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ dom(bal)" ac.soton.emfb.name="mBank_T.Deposit.grd2" ac.soton.emfb.updatedExpression="acc ∈ dom(bal)" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_T.Deposit.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element6"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="acc" ac.soton.emfb.newName="acc" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="recvReqDeposit" ac.soton.emfb.newName="recvReqDeposit" name="internal_element8">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB(a) ≔ am" ac.soton.emfb.name="mBank_D.recvReqDeposit.act5" ac.soton.emfb.updatedExpression="atmDepAmB(a) ≔ am" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB(a) ≔ c" ac.soton.emfb.name="mBank_D.recvReqDeposit.act6" ac.soton.emfb.updatedExpression="cardInAtmB(a) ≔ c" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ≔ recvReqDep ∪ {a}" ac.soton.emfb.name="mBank_D.recvReqDeposit.act1" ac.soton.emfb.updatedExpression="recvReqDep ≔ recvReqDep ∪ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_D.recvReqDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_D.recvReqDeposit.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_D.recvReqDeposit.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="depositB" ac.soton.emfb.newName="depositB" name="internal_element9">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCash(a) ≔ atmCash(a) + am" ac.soton.emfb.name="mBank_D.depositB.act2" ac.soton.emfb.updatedExpression="atmCash(a) ≔ atmCash(a) + am" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal(acc) ≔ bal(acc) + am" ac.soton.emfb.name="mBank_D.depositB.act1" ac.soton.emfb.updatedExpression="bal(acc) ≔ bal(acc) + am" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ≔ processedDep ∪ {a}" ac.soton.emfb.name="mBank_D.depositB.act5" ac.soton.emfb.updatedExpression="processedDep ≔ processedDep ∪ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqDep" ac.soton.emfb.name="mBank_D.depositB.grd13" ac.soton.emfb.updatedExpression="a ∈ recvReqDep" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ ACCOUNT" ac.soton.emfb.name="mBank_D.depositB.grd1" ac.soton.emfb.updatedExpression="acc ∈ ACCOUNT" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB(a) = am" ac.soton.emfb.name="mBank_D.depositB.grd12" ac.soton.emfb.updatedExpression="atmDepAmB(a) = am" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ dom(bal)" ac.soton.emfb.name="mBank_D.depositB.grd2" ac.soton.emfb.updatedExpression="acc ∈ dom(bal)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_D.depositB.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_D.depositB.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ↦ acc ∈ cardAcct" ac.soton.emfb.name="mBank_D.depositB.grd5" ac.soton.emfb.updatedExpression="c ↦ acc ∈ cardAcct" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_D.depositB.grd6" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmCash)" ac.soton.emfb.name="mBank_D.depositB.grd7" ac.soton.emfb.updatedExpression="a ∈ dom(atmCash)" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="mBank_D.depositB.grd8" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmB)" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB(a) = c" ac.soton.emfb.name="mBank_D.depositB.grd9" ac.soton.emfb.updatedExpression="cardInAtmB(a) = c" name="internal_element11"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mBank_D.depositB.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element12"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmDepAmB)" ac.soton.emfb.name="mBank_D.depositB.grd11" ac.soton.emfb.updatedExpression="a ∈ dom(atmDepAmB)" name="internal_element13"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="acc" ac.soton.emfb.newName="acc" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element4"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="sendRespDeposit" ac.soton.emfb.newName="sendRespDeposit" name="internal_element10">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB ≔ {a} ⩤ atmDepAmB" ac.soton.emfb.name="mBank_D.sendRespDeposit.act8" ac.soton.emfb.updatedExpression="atmDepAmB ≔ {a} ⩤ atmDepAmB" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ {a} ⩤ cardInAtmB" ac.soton.emfb.name="mBank_D.sendRespDeposit.act9" ac.soton.emfb.updatedExpression="cardInAtmB ≔ {a} ⩤ cardInAtmB" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ≔ processedDep ∖ {a}" ac.soton.emfb.name="mBank_D.sendRespDeposit.act2" ac.soton.emfb.updatedExpression="processedDep ≔ processedDep ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ≔ recvReqDep ∖ {a}" ac.soton.emfb.name="mBank_D.sendRespDeposit.act10" ac.soton.emfb.updatedExpression="recvReqDep ≔ recvReqDep ∖ {a}" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mBank_D.sendRespDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqDep" ac.soton.emfb.name="mBank_D.sendRespDeposit.grd6" ac.soton.emfb.updatedExpression="a ∈ recvReqDep" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ processedDep" ac.soton.emfb.name="mBank_D.sendRespDeposit.grd1" ac.soton.emfb.updatedExpression="a ∈ processedDep" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="mBank_D.sendRespDeposit.grd2" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmB)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmDepAmB)" ac.soton.emfb.name="mBank_D.sendRespDeposit.grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmDepAmB)" name="internal_element5"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="false" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="Transfer" ac.soton.emfb.newName="Transfer" name="internal_element11">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal ≔  bal  {dest_ac ↦ (bal(dest_ac) + am), src_ac ↦(bal(src_ac) − am)}" ac.soton.emfb.name="mBank_D.Transfer.act1" ac.soton.emfb.updatedExpression="bal ≔  bal  {dest_ac ↦ (bal(dest_ac) + am), src_ac ↦(bal(src_ac) − am)}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ dom(bal)" ac.soton.emfb.name="mBank_D.Transfer.grd7" ac.soton.emfb.updatedExpression="dest_ac ∈ dom(bal)" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ dom(bal)" ac.soton.emfb.name="mBank_D.Transfer.grd6" ac.soton.emfb.updatedExpression="src_ac ∈ dom(bal)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mBank_D.Transfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am &lt; bal(src_ac)" ac.soton.emfb.name="mBank_D.Transfer.grd9" ac.soton.emfb.updatedExpression="am &lt; bal(src_ac)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mBank_D.Transfer.grd8" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mBank_D.Transfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_D.Transfer.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ↦ src_ac ∈ cardAcct" ac.soton.emfb.name="mBank_D.Transfer.grd4" ac.soton.emfb.updatedExpression="c ↦ src_ac ∈ cardAcct" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mBank_D.Transfer.grd5" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mBank_D.Transfer.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element10"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element4"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.composedMachine>
<ac.soton.emfb.composedMachine ac.soton.emfb.compose="true" ac.soton.emfb.name="ATM_TD" ac.soton.emfb.newName="ATM_TD" name="internal_element3">
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="validCard" ac.soton.emfb.newName="validCard" name="internal_element1"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardInAtm" ac.soton.emfb.newName="cardInAtm" name="internal_element2"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trAmount" ac.soton.emfb.newName="trAmount" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="transOkAtm" ac.soton.emfb.newName="transOkAtm" name="internal_element4"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="srcAcc" ac.soton.emfb.newName="srcAcc" name="internal_element5"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="destAcc" ac.soton.emfb.newName="destAcc" name="internal_element6"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvRespTransferOk" ac.soton.emfb.newName="recvRespTransferOk" name="internal_element7"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvRespTransferFail" ac.soton.emfb.newName="recvRespTransferFail" name="internal_element8"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trans" ac.soton.emfb.newName="trans" name="internal_element9"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="accBalOnAtm" ac.soton.emfb.newName="accBalOnAtm" name="internal_element10"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmCashA" ac.soton.emfb.newName="atmCashA" name="internal_element11"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAm" ac.soton.emfb.newName="atmDepAm" name="internal_element12"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvRespDep" ac.soton.emfb.newName="recvRespDep" name="internal_element13"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ∈ ℙ(ATM)" ac.soton.emfb.name="mATM_T.typing_trans" ac.soton.emfb.updatedExpression="trans ∈ ℙ(ATM)" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferOk ∈ ℙ(ATM)" ac.soton.emfb.name="mATM_T.typing_recvRespTransferOk" ac.soton.emfb.updatedExpression="recvRespTransferOk ∈ ℙ(ATM)" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferFail ∈ ℙ(ATM)" ac.soton.emfb.name="mATM_T.typing_recvRespTransferFail" ac.soton.emfb.updatedExpression="recvRespTransferFail ∈ ℙ(ATM)" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="validCard ∈ ℙ(CARD)" ac.soton.emfb.name="mATM_T.typing_validCard" ac.soton.emfb.updatedExpression="validCard ∈ ℙ(CARD)" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="validCard ⊆  CARD" ac.soton.emfb.name="mATM_T.BalTransfer_0_IntegralATM_0_inv4" ac.soton.emfb.updatedExpression="validCard ⊆  CARD" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtm ∈  ATM ⇸ CARD" ac.soton.emfb.name="mATM_T.BalTransfer_1_inv10" ac.soton.emfb.updatedExpression="cardInAtm ∈  ATM ⇸ CARD" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmount ∈ ATM ⇸ ℕ1" ac.soton.emfb.name="mATM_T.BalTransfer_2_inv8" ac.soton.emfb.updatedExpression="trAmount ∈ ATM ⇸ ℕ1" name="internal_element7"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm ∈ ATM ⇸ BOOL" ac.soton.emfb.name="mATM_T.BalTransfer_2_inv11" ac.soton.emfb.updatedExpression="transOkAtm ∈ ATM ⇸ BOOL" name="internal_element8"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAcc ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="mATM_T.BalTransfer_2_inv12" ac.soton.emfb.updatedExpression="srcAcc ∈ ATM ⇸ ACCOUNT" name="internal_element9"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAcc ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="mATM_T.BalTransfer_2_inv13" ac.soton.emfb.updatedExpression="destAcc ∈ ATM ⇸ ACCOUNT" name="internal_element10"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ c · c ∈ ran(cardInAtm) ⇒ c ∈ validCard" ac.soton.emfb.name="mATM_T.BalTransfer_2_inv17" ac.soton.emfb.updatedExpression="∀ c · c ∈ ran(cardInAtm) ⇒ c ∈ validCard" name="internal_element11"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespDep ∈ ℙ(ATM)" ac.soton.emfb.name="mATM_D.typing_recvRespDep" ac.soton.emfb.updatedExpression="recvRespDep ∈ ℙ(ATM)" name="internal_element12"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAm ∈ ATM ⇸ ℕ" ac.soton.emfb.name="mATM_D.Deposit_2_inv8" ac.soton.emfb.updatedExpression="atmDepAm ∈ ATM ⇸ ℕ" name="internal_element13"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCashA ∈ ATM → ℕ" ac.soton.emfb.name="mATM_D.Deposit_2_inv10" ac.soton.emfb.updatedExpression="atmCashA ∈ ATM → ℕ" name="internal_element14"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="accBalOnAtm ∈ ACCOUNT ⇸ ℕ" ac.soton.emfb.name="mATM_D.Deposit_2_inv11" ac.soton.emfb.updatedExpression="accBalOnAtm ∈ ACCOUNT ⇸ ℕ" name="internal_element15"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀c· c ∈ ran(cardInAtm) ⇒ c ∈ validCard " ac.soton.emfb.name="mATM_D.Deposit_2_inv12" ac.soton.emfb.updatedExpression="∀c· c ∈ ran(cardInAtm) ⇒ c ∈ validCard " name="internal_element16"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element1">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAcc ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act23" ac.soton.emfb.updatedExpression="destAcc ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmount ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act18" ac.soton.emfb.updatedExpression="trAmount ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferOk ≔  ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act24" ac.soton.emfb.updatedExpression="recvRespTransferOk ≔  ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferFail ≔  ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act26" ac.soton.emfb.updatedExpression="recvRespTransferFail ≔  ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act21" ac.soton.emfb.updatedExpression="transOkAtm ≔ ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act30" ac.soton.emfb.updatedExpression="trans ≔ ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAcc ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act22" ac.soton.emfb.updatedExpression="srcAcc ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtm ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act7" ac.soton.emfb.updatedExpression="cardInAtm ≔ ∅" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespDep ≔ ∅" ac.soton.emfb.name="mATM_D.INITIALISATION.act20" ac.soton.emfb.updatedExpression="recvRespDep ≔ ∅" name="internal_element9"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="accBalOnAtm ≔ ∅" ac.soton.emfb.name="mATM_D.INITIALISATION.act11" ac.soton.emfb.updatedExpression="accBalOnAtm ≔ ∅" name="internal_element10"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="validCard ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act4" ac.soton.emfb.updatedExpression="validCard ≔ ∅" name="internal_element11"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCashA ≔ ATM × {0}" ac.soton.emfb.name="mATM_D.INITIALISATION.act21" ac.soton.emfb.updatedExpression="atmCashA ≔ ATM × {0}" name="internal_element12"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAm ≔ ∅" ac.soton.emfb.name="mATM_D.INITIALISATION.act14" ac.soton.emfb.updatedExpression="atmDepAm ≔ ∅" name="internal_element13"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="SendReqTransfer" ac.soton.emfb.newName="SendReqTransfer" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAcc(a) ≔ dest_ac" ac.soton.emfb.name="mATM_T.SendReqTransfer.act4" ac.soton.emfb.updatedExpression="destAcc(a) ≔ dest_ac" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAcc(a) ≔ src_ac" ac.soton.emfb.name="mATM_T.SendReqTransfer.act3" ac.soton.emfb.updatedExpression="srcAcc(a) ≔ src_ac" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmount(a) ≔ am" ac.soton.emfb.name="mATM_T.SendReqTransfer.act2" ac.soton.emfb.updatedExpression="trAmount(a) ≔ am" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∪ {a}" ac.soton.emfb.name="mATM_T.SendReqTransfer.act11" ac.soton.emfb.updatedExpression="trans ≔ trans ∪ {a}" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd8" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mATM_T.SendReqTransfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∉ trans" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd11" ac.soton.emfb.updatedExpression="a ∉ trans" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mATM_T.SendReqTransfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtm" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd7" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtm" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd4" ac.soton.emfb.updatedExpression="c ∈ validCard" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd5" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element10"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="RecvRespTransferOk" ac.soton.emfb.newName="RecvRespTransferOk" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferOk ≔  recvRespTransferOk ∪ {a}" ac.soton.emfb.name="mATM_T.RecvRespTransferOk.act1" ac.soton.emfb.updatedExpression="recvRespTransferOk ≔  recvRespTransferOk ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_T.RecvRespTransferOk.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="RecvRespTransferFail" ac.soton.emfb.newName="RecvRespTransferFail" name="internal_element4">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferFail ≔  recvRespTransferFail ∪ {a}" ac.soton.emfb.name="mATM_T.RecvRespTransferFail.act1" ac.soton.emfb.updatedExpression="recvRespTransferFail ≔  recvRespTransferFail ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_T.RecvRespTransferFail.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="TransferOKAtm" ac.soton.emfb.newName="TransferOKAtm" name="internal_element5">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferOk ≔ recvRespTransferOk ∖ {a}" ac.soton.emfb.name="mATM_T.TransferOKAtm.act6" ac.soton.emfb.updatedExpression="recvRespTransferOk ≔ recvRespTransferOk ∖ {a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∖ {a}" ac.soton.emfb.name="mATM_T.TransferOKAtm.act7" ac.soton.emfb.updatedExpression="trans ≔ trans ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm(a) ≔  TRUE" ac.soton.emfb.name="mATM_T.TransferOKAtm.act1" ac.soton.emfb.updatedExpression="transOkAtm(a) ≔  TRUE" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvRespTransferOk" ac.soton.emfb.name="mATM_T.TransferOKAtm.grd11" ac.soton.emfb.updatedExpression="a ∈ recvRespTransferOk" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_T.TransferOKAtm.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="TransferFailsAtm" ac.soton.emfb.newName="TransferFailsAtm" name="internal_element6">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm(a) ≔  FALSE" ac.soton.emfb.name="mATM_T.TransferFailsAtm.act1" ac.soton.emfb.updatedExpression="transOkAtm(a) ≔  FALSE" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∖ {a}" ac.soton.emfb.name="mATM_T.TransferFailsAtm.act7" ac.soton.emfb.updatedExpression="trans ≔ trans ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferFail ≔ recvRespTransferFail ∖ {a}" ac.soton.emfb.name="mATM_T.TransferFailsAtm.act6" ac.soton.emfb.updatedExpression="recvRespTransferFail ≔ recvRespTransferFail ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_T.TransferFailsAtm.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvRespTransferFail" ac.soton.emfb.name="mATM_T.TransferFailsAtm.grd11" ac.soton.emfb.updatedExpression="a ∈ recvRespTransferFail" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="false" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="Deposit" ac.soton.emfb.newName="Deposit" name="internal_element7">
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ ACCOUNT" ac.soton.emfb.name="mATM_T.Deposit.grd1" ac.soton.emfb.updatedExpression="acc ∈ ACCOUNT" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mATM_T.Deposit.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="mATM_T.Deposit.grd4" ac.soton.emfb.updatedExpression="c ∈ validCard" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mATM_T.Deposit.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mATM_T.Deposit.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element5"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="acc" ac.soton.emfb.newName="acc" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element3"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="sendReqDeposit" ac.soton.emfb.newName="sendReqDeposit" name="internal_element8">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAm(a) ≔ am" ac.soton.emfb.name="mATM_D.sendReqDeposit.act3" ac.soton.emfb.updatedExpression="atmDepAm(a) ≔ am" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∪ {a}" ac.soton.emfb.name="mATM_D.sendReqDeposit.act2" ac.soton.emfb.updatedExpression="trans ≔ trans ∪ {a}" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mATM_D.sendReqDeposit.grd2" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="mATM_D.sendReqDeposit.grd6" ac.soton.emfb.updatedExpression="c ∈ validCard" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtm(a) = c" ac.soton.emfb.name="mATM_D.sendReqDeposit.grd5" ac.soton.emfb.updatedExpression="cardInAtm(a) = c" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtm)" ac.soton.emfb.name="mATM_D.sendReqDeposit.grd4" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtm)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ ran(cardInAtm)" ac.soton.emfb.name="mATM_D.sendReqDeposit.grd3" ac.soton.emfb.updatedExpression="c ∈ ran(cardInAtm)" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∉ trans" ac.soton.emfb.name="mATM_D.sendReqDeposit.grd9" ac.soton.emfb.updatedExpression="a ∉ trans" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mATM_D.sendReqDeposit.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mATM_D.sendReqDeposit.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_D.sendReqDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element9"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element3"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="recvRespDeposit" ac.soton.emfb.newName="recvRespDeposit" name="internal_element9">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespDep ≔ recvRespDep ∪ {a}" ac.soton.emfb.name="mATM_D.recvRespDeposit.act4" ac.soton.emfb.updatedExpression="recvRespDep ≔ recvRespDep ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_D.recvRespDeposit.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="depositATM" ac.soton.emfb.newName="depositATM" name="internal_element10">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCashA(a) ≔ atmCashA(a) + am" ac.soton.emfb.name="mATM_D.depositATM.act2" ac.soton.emfb.updatedExpression="atmCashA(a) ≔ atmCashA(a) + am" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespDep ≔ recvRespDep ∖ {a}" ac.soton.emfb.name="mATM_D.depositATM.act6" ac.soton.emfb.updatedExpression="recvRespDep ≔ recvRespDep ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∖ {a}" ac.soton.emfb.name="mATM_D.depositATM.act5" ac.soton.emfb.updatedExpression="trans ≔ trans ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom (atmDepAm)" ac.soton.emfb.name="mATM_D.depositATM.grd9" ac.soton.emfb.updatedExpression="a ∈ dom (atmDepAm)" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvRespDep" ac.soton.emfb.name="mATM_D.depositATM.grd12" ac.soton.emfb.updatedExpression="a ∈ recvRespDep" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mATM_D.depositATM.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAm(a) = am" ac.soton.emfb.name="mATM_D.depositATM.grd10" ac.soton.emfb.updatedExpression="atmDepAm(a) = am" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_D.depositATM.typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element5"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element2"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="false" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="Transfer" ac.soton.emfb.newName="Transfer" name="internal_element11">
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mATM_D.Transfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mATM_D.Transfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mATM_D.Transfer.grd8" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mATM_D.Transfer.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="mATM_D.Transfer.grd3" ac.soton.emfb.updatedExpression="c ∈ validCard" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mATM_D.Transfer.grd5" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mATM_D.Transfer.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element7"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element4"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.composedMachine>
<ac.soton.emfb.composedContext ac.soton.emfb.compose="true" ac.soton.emfb.name="ATM_TD_CO" name="internal_element1">
<ac.soton.emfb.composedSet ac.soton.emfb.compose="true" ac.soton.emfb.name="ATM" ac.soton.emfb.newName="ATM" name="internal_element1"/>
<ac.soton.emfb.composedSet ac.soton.emfb.compose="true" ac.soton.emfb.name="CARD" ac.soton.emfb.newName="CARD" name="internal_element2"/>
<ac.soton.emfb.composedSet ac.soton.emfb.compose="true" ac.soton.emfb.name="ACCOUNT" ac.soton.emfb.newName="ACCOUNT" name="internal_element3"/>
</ac.soton.emfb.composedContext>
<ac.soton.emfb.composedContext ac.soton.emfb.compose="true" ac.soton.emfb.name="Bank_TD_CO" name="internal_element2">
<ac.soton.emfb.composedSet ac.soton.emfb.compose="false" ac.soton.emfb.name="ATM" ac.soton.emfb.newName="ATM" name="internal_element1"/>
<ac.soton.emfb.composedSet ac.soton.emfb.compose="false" ac.soton.emfb.name="ACCOUNT" ac.soton.emfb.newName="ACCOUNT" name="internal_element2"/>
<ac.soton.emfb.composedSet ac.soton.emfb.compose="false" ac.soton.emfb.name="CARD" ac.soton.emfb.newName="CARD" name="internal_element3"/>
</ac.soton.emfb.composedContext>
<ac.soton.emfb.composedContext ac.soton.emfb.compose="true" ac.soton.emfb.name="MW_TD_CO" name="internal_element3">
<ac.soton.emfb.composedSet ac.soton.emfb.compose="false" ac.soton.emfb.name="ATM" ac.soton.emfb.newName="ATM" name="internal_element1"/>
<ac.soton.emfb.composedSet ac.soton.emfb.compose="false" ac.soton.emfb.name="CARD" ac.soton.emfb.newName="CARD" name="internal_element2"/>
<ac.soton.emfb.composedSet ac.soton.emfb.compose="false" ac.soton.emfb.name="ACCOUNT" ac.soton.emfb.newName="ACCOUNT" name="internal_element3"/>
</ac.soton.emfb.composedContext>
<ac.soton.emfb.eventComposition ac.soton.emfb.compose="true" ac.soton.emfb.name="INITIALISATION" name="internal_element1">
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element1">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ ∅" ac.soton.emfb.name="mMW_D.INITIALISATION.act17" ac.soton.emfb.updatedExpression="sendReqDep ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act38" ac.soton.emfb.updatedExpression="trAmountM ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act29" ac.soton.emfb.updatedExpression="sendRespTransferOk ≔  ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act36" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act25" ac.soton.emfb.updatedExpression="sendRespTransferFail ≔  ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ≔ ∅" ac.soton.emfb.name="mMW_D.INITIALISATION.act28" ac.soton.emfb.updatedExpression="atmDepAmM ≔ ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ ∅" ac.soton.emfb.name="mMW_D.INITIALISATION.act19" ac.soton.emfb.updatedExpression="sendRespDep ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔  ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act27" ac.soton.emfb.updatedExpression="sendReqTransfer ≔  ∅" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act40" ac.soton.emfb.updatedExpression="srcAccM ≔ ∅" name="internal_element9"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM≔ ∅" ac.soton.emfb.name="mMW_T.INITIALISATION.act41" ac.soton.emfb.updatedExpression="destAccM≔ ∅" name="internal_element10"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Bank_TD" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB ≔ ∅" ac.soton.emfb.name="mBank_D.INITIALISATION.act27" ac.soton.emfb.updatedExpression="atmDepAmB ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ≔ ∅" ac.soton.emfb.name="mBank_D.INITIALISATION.act15" ac.soton.emfb.updatedExpression="processedDep ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act32" ac.soton.emfb.updatedExpression="trAmountB ≔ ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act42" ac.soton.emfb.updatedExpression="srcAccB≔ ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB  ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act43" ac.soton.emfb.updatedExpression="destAccB  ≔ ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act31" ac.soton.emfb.updatedExpression="cardInAtmB ≔ ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act15" ac.soton.emfb.updatedExpression="transferFail ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCash ≔ ATM × {0}" ac.soton.emfb.name="mBank_D.INITIALISATION.act4" ac.soton.emfb.updatedExpression="atmCash ≔ ATM × {0}" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act14" ac.soton.emfb.updatedExpression="transferOk ≔ ∅" name="internal_element9"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔  ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act28" ac.soton.emfb.updatedExpression="recvReqTransfer ≔  ∅" name="internal_element10"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="bal ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act1" ac.soton.emfb.updatedExpression="bal ≔ ∅" name="internal_element11"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardAcct ≔ ∅" ac.soton.emfb.name="mBank_T.INITIALISATION.act2" ac.soton.emfb.updatedExpression="cardAcct ≔ ∅" name="internal_element12"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ≔ ∅" ac.soton.emfb.name="mBank_D.INITIALISATION.act18" ac.soton.emfb.updatedExpression="recvReqDep ≔ ∅" name="internal_element13"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAcc ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act23" ac.soton.emfb.updatedExpression="destAcc ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmount ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act18" ac.soton.emfb.updatedExpression="trAmount ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferOk ≔  ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act24" ac.soton.emfb.updatedExpression="recvRespTransferOk ≔  ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferFail ≔  ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act26" ac.soton.emfb.updatedExpression="recvRespTransferFail ≔  ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act21" ac.soton.emfb.updatedExpression="transOkAtm ≔ ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act30" ac.soton.emfb.updatedExpression="trans ≔ ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAcc ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act22" ac.soton.emfb.updatedExpression="srcAcc ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtm ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act7" ac.soton.emfb.updatedExpression="cardInAtm ≔ ∅" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespDep ≔ ∅" ac.soton.emfb.name="mATM_D.INITIALISATION.act20" ac.soton.emfb.updatedExpression="recvRespDep ≔ ∅" name="internal_element9"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="accBalOnAtm ≔ ∅" ac.soton.emfb.name="mATM_D.INITIALISATION.act11" ac.soton.emfb.updatedExpression="accBalOnAtm ≔ ∅" name="internal_element10"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="validCard ≔ ∅" ac.soton.emfb.name="mATM_T.INITIALISATION.act4" ac.soton.emfb.updatedExpression="validCard ≔ ∅" name="internal_element11"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCashA ≔ ATM × {0}" ac.soton.emfb.name="mATM_D.INITIALISATION.act21" ac.soton.emfb.updatedExpression="atmCashA ≔ ATM × {0}" name="internal_element12"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAm ≔ ∅" ac.soton.emfb.name="mATM_D.INITIALISATION.act14" ac.soton.emfb.updatedExpression="atmDepAm ≔ ∅" name="internal_element13"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.eventComposition>
<ac.soton.emfb.eventComposition ac.soton.emfb.compose="true" ac.soton.emfb.name="SendReqTransfer" name="internal_element2">
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_TD" ac.soton.emfb.name="SendReqTransfer" ac.soton.emfb.newName="SendReqTransfer" name="internal_element1">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔ sendReqTransfer ∪ {a}" ac.soton.emfb.name="mMW_T.SendReqTransfer.act1" ac.soton.emfb.updatedExpression="sendReqTransfer ≔ sendReqTransfer ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM(a) ≔ c" ac.soton.emfb.name="mMW_T.SendReqTransfer.act10" ac.soton.emfb.updatedExpression="cardInAtmM(a) ≔ c" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM(a) ≔ dest_ac" ac.soton.emfb.name="mMW_T.SendReqTransfer.act8" ac.soton.emfb.updatedExpression="destAccM(a) ≔ dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM(a) ≔ src_ac" ac.soton.emfb.name="mMW_T.SendReqTransfer.act7" ac.soton.emfb.updatedExpression="srcAccM(a) ≔ src_ac" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM(a) ≔ am" ac.soton.emfb.name="mMW_T.SendReqTransfer.act6" ac.soton.emfb.updatedExpression="trAmountM(a) ≔ am" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mMW_T.SendReqTransfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mMW_T.SendReqTransfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd8" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mMW_T.SendReqTransfer.grd5" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element7"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="ATM_TD" ac.soton.emfb.name="SendReqTransfer" ac.soton.emfb.newName="SendReqTransfer" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAcc(a) ≔ dest_ac" ac.soton.emfb.name="mATM_T.SendReqTransfer.act4" ac.soton.emfb.updatedExpression="destAcc(a) ≔ dest_ac" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAcc(a) ≔ src_ac" ac.soton.emfb.name="mATM_T.SendReqTransfer.act3" ac.soton.emfb.updatedExpression="srcAcc(a) ≔ src_ac" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmount(a) ≔ am" ac.soton.emfb.name="mATM_T.SendReqTransfer.act2" ac.soton.emfb.updatedExpression="trAmount(a) ≔ am" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∪ {a}" ac.soton.emfb.name="mATM_T.SendReqTransfer.act11" ac.soton.emfb.updatedExpression="trans ≔ trans ∪ {a}" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd8" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="mATM_T.SendReqTransfer.typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∉ trans" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd11" ac.soton.emfb.updatedExpression="a ∉ trans" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="mATM_T.SendReqTransfer.typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtm" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd7" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtm" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd4" ac.soton.emfb.updatedExpression="c ∈ validCard" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="mATM_T.SendReqTransfer.grd5" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element10"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="c" ac.soton.emfb.newName="c" name="internal_element1"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="src_ac" ac.soton.emfb.newName="src_ac" name="internal_element2"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="dest_ac" ac.soton.emfb.newName="dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="am" ac.soton.emfb.newName="am" name="internal_element4"/>
<ac.soton.emfb.composedParameter ac.soton.emfb.compose="true" ac.soton.emfb.name="a" ac.soton.emfb.newName="a" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.eventComposition>
<ac.soton.emfb.eventComposition ac.soton.emfb.compose="true" ac.soton.emfb.name="RecvReqTransfer" name="internal_element3"/>
</ac.soton.emfb.compositionFile>
