<?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_W" ac.soton.emfb.newName="MW_W" name="internal_element1">
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmWDAmM" ac.soton.emfb.newName="atmWDAmM" 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="sendReqWD" ac.soton.emfb.newName="sendReqWD" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespWDOk" ac.soton.emfb.newName="sendRespWDOk" name="internal_element4"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespWDFail" ac.soton.emfb.newName="sendRespWDFail" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ∈ ℙ(ATM × CARD)" ac.soton.emfb.name="typing_cardInAtmM" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ℙ(ATM × CARD)" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDOk ∈ ℙ(ATM)" ac.soton.emfb.name="typing_sendRespWDOk" ac.soton.emfb.updatedExpression="sendRespWDOk ∈ ℙ(ATM)" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqWD ∈ ℙ(ATM)" ac.soton.emfb.name="typing_sendReqWD" ac.soton.emfb.updatedExpression="sendReqWD ∈ ℙ(ATM)" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="atmWDAmM ∈ ℙ(ATM × ℤ)" ac.soton.emfb.name="typing_atmWDAmM" ac.soton.emfb.updatedExpression="atmWDAmM ∈ ℙ(ATM × ℤ)" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDFail ∈ ℙ(ATM)" ac.soton.emfb.name="typing_sendRespWDFail" ac.soton.emfb.updatedExpression="sendRespWDFail ∈ ℙ(ATM)" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ∈ ATM ⇸ CARD" ac.soton.emfb.name="Withdraw_4_inv4" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ATM ⇸ CARD" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmWDAmM ∈ ATM ⇸ ℕ" ac.soton.emfb.name="Withdraw_4_inv6" ac.soton.emfb.updatedExpression="atmWDAmM ∈ ATM ⇸ ℕ" name="internal_element7"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_W" 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="atmWDAmM ≔ ∅" ac.soton.emfb.name="act31" ac.soton.emfb.updatedExpression="atmWDAmM ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDOk ≔  ∅" ac.soton.emfb.name="act22" ac.soton.emfb.updatedExpression="sendRespWDOk ≔  ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqWD ≔  ∅" ac.soton.emfb.name="act20" ac.soton.emfb.updatedExpression="sendReqWD ≔  ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDFail ≔  ∅" ac.soton.emfb.name="act24" ac.soton.emfb.updatedExpression="sendRespWDFail ≔  ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act29" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_W" ac.soton.emfb.name="SendReqWithdraw" ac.soton.emfb.newName="SendReqWithdraw" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqWD ≔  sendReqWD ∪ {a}" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="sendReqWD ≔  sendReqWD ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM(a) ≔ c" ac.soton.emfb.name="act7" ac.soton.emfb.updatedExpression="cardInAtmM(a) ≔ c" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmWDAmM(a) ≔ am" ac.soton.emfb.name="act5" ac.soton.emfb.updatedExpression="atmWDAmM(a) ≔ am" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="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="grd4" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ ACCOUNT" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="acc ∈ ACCOUNT" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" 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="c" ac.soton.emfb.newName="c" 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="acc" ac.soton.emfb.newName="acc" name="internal_element4"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_W" ac.soton.emfb.name="RecvReqWD" ac.soton.emfb.newName="RecvReqWD" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqWD ≔ sendReqWD ∖ {a}" ac.soton.emfb.name="act5" ac.soton.emfb.updatedExpression="sendReqWD ≔ sendReqWD ∖ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendReqWD" ac.soton.emfb.name="grd9" ac.soton.emfb.updatedExpression="a ∈ sendReqWD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="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 = atmWDAmM(a)" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="am = atmWDAmM(a)" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmWDAmM)" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmWDAmM)" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtmM" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtmM" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" 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="c" ac.soton.emfb.newName="c" 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.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_W" ac.soton.emfb.name="SendRespWDok" ac.soton.emfb.newName="SendRespWDok" name="internal_element4">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDOk ≔ sendRespWDOk ∪ {a}" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="sendRespWDOk ≔ sendRespWDOk ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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_W" ac.soton.emfb.name="RecvRespWDOk" ac.soton.emfb.newName="RecvRespWDOk" name="internal_element5">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="act8" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmWDAmM ≔ {a} ⩤ atmWDAmM" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="atmWDAmM ≔ {a} ⩤ atmWDAmM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDOk ≔  sendRespWDOk ∖ {a}" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="sendRespWDOk ≔  sendRespWDOk ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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 ∈ dom(atmWDAmM)" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmWDAmM)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendRespWDOk" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespWDOk" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmM)" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmM)" 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.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="MW_W" ac.soton.emfb.name="SendRespWDfail" ac.soton.emfb.newName="SendRespWDfail" name="internal_element6">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDFail ≔ sendRespWDFail ∪ {a}" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="sendRespWDFail ≔ sendRespWDFail ∪ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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_W" ac.soton.emfb.name="RecvRespWDFail" ac.soton.emfb.newName="RecvRespWDFail" name="internal_element7">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="act8" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmWDAmM ≔ {a} ⩤ atmWDAmM" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="atmWDAmM ≔ {a} ⩤ atmWDAmM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDFail ≔  sendRespWDFail ∖ {a}" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="sendRespWDFail ≔  sendRespWDFail ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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 ∈ dom(atmWDAmM)" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmWDAmM)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendRespWDFail" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespWDFail" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmM)" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmM)" 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="mMW_T" ac.soton.emfb.newName="mMW_T" name="internal_element2">
<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="false" 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.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ∈ ℙ(ATM)" ac.soton.emfb.name="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="typing_sendRespTransferOk" ac.soton.emfb.updatedExpression="sendRespTransferOk ∈ ℙ(ATM)" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ∈ ℙ(ATM × CARD)" ac.soton.emfb.name="typing_cardInAtmM" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ℙ(ATM × CARD)" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="destAccM ∈ ℙ(ATM × ACCOUNT)" ac.soton.emfb.name="typing_destAccM" ac.soton.emfb.updatedExpression="destAccM ∈ ℙ(ATM × ACCOUNT)" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ∈ ℙ(ATM)" ac.soton.emfb.name="typing_sendReqTransfer" ac.soton.emfb.updatedExpression="sendReqTransfer ∈ ℙ(ATM)" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="trAmountM ∈ ℙ(ATM × ℤ)" ac.soton.emfb.name="typing_trAmountM" ac.soton.emfb.updatedExpression="trAmountM ∈ ℙ(ATM × ℤ)" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="srcAccM ∈ ℙ(ATM × ACCOUNT)" ac.soton.emfb.name="typing_srcAccM" ac.soton.emfb.updatedExpression="srcAccM ∈ ℙ(ATM × ACCOUNT)" name="internal_element7"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ∈ ATM ⇸ CARD" ac.soton.emfb.name="BalTransfer_4_inv2" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ATM ⇸ CARD" name="internal_element8"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ∈ ATM ⇸ ℕ1" ac.soton.emfb.name="BalTransfer_4_inv3" ac.soton.emfb.updatedExpression="trAmountM ∈ ATM ⇸ ℕ1" name="internal_element9"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="BalTransfer_4_inv21" ac.soton.emfb.updatedExpression="srcAccM ∈ ATM ⇸ ACCOUNT" name="internal_element10"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="BalTransfer_4_inv22" ac.soton.emfb.updatedExpression="destAccM ∈ ATM ⇸ ACCOUNT" name="internal_element11"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="mMW_T" 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="destAccM≔ ∅" ac.soton.emfb.name="act41" ac.soton.emfb.updatedExpression="destAccM≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔ ∅" ac.soton.emfb.name="act40" ac.soton.emfb.updatedExpression="srcAccM ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act36" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔  ∅" ac.soton.emfb.name="act27" ac.soton.emfb.updatedExpression="sendReqTransfer ≔  ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ ∅" ac.soton.emfb.name="act38" ac.soton.emfb.updatedExpression="trAmountM ≔ ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  ∅" ac.soton.emfb.name="act25" ac.soton.emfb.updatedExpression="sendRespTransferFail ≔  ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  ∅" ac.soton.emfb.name="act29" ac.soton.emfb.updatedExpression="sendRespTransferOk ≔  ∅" name="internal_element7"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="mMW_T" 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="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="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="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="trAmountM(a) ≔ am" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="trAmountM(a) ≔ am" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM(a) ≔ src_ac" ac.soton.emfb.name="act7" ac.soton.emfb.updatedExpression="srcAccM(a) ≔ src_ac" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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="typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="src_ac ≠ dest_ac" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="grd3" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ ACCOUNT" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="dest_ac ∈ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" 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="mMW_T" 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="act5" ac.soton.emfb.updatedExpression="sendReqTransfer ≔ sendReqTransfer ∖ {a}" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(destAccM)" ac.soton.emfb.name="grd9" ac.soton.emfb.updatedExpression="a ∈ dom(destAccM)" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="typing_c" ac.soton.emfb.updatedExpression="c ∈ CARD" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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="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="destAccM(a) = dest_ac" ac.soton.emfb.name="grd7" ac.soton.emfb.updatedExpression="destAccM(a) = dest_ac" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(srcAccM)" ac.soton.emfb.name="grd8" ac.soton.emfb.updatedExpression="a ∈ dom(srcAccM)" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtmM" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtmM" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM(a) = src_ac" ac.soton.emfb.name="grd6" ac.soton.emfb.updatedExpression="srcAccM(a) = src_ac" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = trAmountM(a)" ac.soton.emfb.name="grd3" ac.soton.emfb.updatedExpression="am = trAmountM(a)" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendReqTransfer" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a ∈ sendReqTransfer" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(trAmountM)" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a ∈ dom(trAmountM)" name="internal_element11"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" name="internal_element12"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ ACCOUNT" ac.soton.emfb.name="typing_src_ac" ac.soton.emfb.updatedExpression="src_ac ∈ ACCOUNT" 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="mMW_T" 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="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="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="mMW_T" 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="destAccM ≔  {a} ⩤ destAccM" ac.soton.emfb.name="act13" ac.soton.emfb.updatedExpression="destAccM ≔  {a} ⩤ destAccM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔  {a} ⩤ srcAccM" ac.soton.emfb.name="act12" ac.soton.emfb.updatedExpression="srcAccM ≔  {a} ⩤ srcAccM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="act11" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ {a} ⩤ trAmountM" ac.soton.emfb.name="act9" ac.soton.emfb.updatedExpression="trAmountM ≔ {a} ⩤ trAmountM" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  sendRespTransferOk ∖ {a}" ac.soton.emfb.name="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 ∈ ATM" ac.soton.emfb.name="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 ∈ sendRespTransferOk" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespTransferOk" 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="mMW_T" 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="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="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="mMW_T" 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="destAccM ≔  {a} ⩤ destAccM" ac.soton.emfb.name="act13" ac.soton.emfb.updatedExpression="destAccM ≔  {a} ⩤ destAccM" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔  {a} ⩤ srcAccM" ac.soton.emfb.name="act12" ac.soton.emfb.updatedExpression="srcAccM ≔  {a} ⩤ srcAccM" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ {a} ⩤ cardInAtmM" ac.soton.emfb.name="act11" ac.soton.emfb.updatedExpression="cardInAtmM ≔ {a} ⩤ cardInAtmM" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ {a} ⩤ trAmountM" ac.soton.emfb.name="act9" ac.soton.emfb.updatedExpression="trAmountM ≔ {a} ⩤ trAmountM" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  sendRespTransferFail ∖ {a}" ac.soton.emfb.name="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="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="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.composedMachine>
<ac.soton.emfb.composedMachine ac.soton.emfb.compose="true" ac.soton.emfb.name="mMW_D" ac.soton.emfb.newName="mMW_D" name="internal_element3">
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAmM" ac.soton.emfb.newName="atmDepAmM" name="internal_element1"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="false" 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="sendReqDep" ac.soton.emfb.newName="sendReqDep" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespDep" ac.soton.emfb.newName="sendRespDep" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ∈ ℙ(ATM × CARD)" ac.soton.emfb.name="typing_cardInAtmM" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ℙ(ATM × CARD)" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ∈ ℙ(ATM)" ac.soton.emfb.name="typing_sendRespDep" ac.soton.emfb.updatedExpression="sendRespDep ∈ ℙ(ATM)" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ∈ ℙ(ATM)" ac.soton.emfb.name="typing_sendReqDep" ac.soton.emfb.updatedExpression="sendReqDep ∈ ℙ(ATM)" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="atmDepAmM ∈ ℙ(ATM × ℤ)" ac.soton.emfb.name="typing_atmDepAmM" ac.soton.emfb.updatedExpression="atmDepAmM ∈ ℙ(ATM × ℤ)" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ∈ ATM ⇸ CARD" ac.soton.emfb.name="Deposit_4_inv4" ac.soton.emfb.updatedExpression="cardInAtmM ∈ ATM ⇸ CARD" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ∈ ATM ⇸ ℕ" ac.soton.emfb.name="Deposit_4_inv6" ac.soton.emfb.updatedExpression="atmDepAmM ∈ ATM ⇸ ℕ" name="internal_element6"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="mMW_D" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element1">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act26" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ≔ ∅" ac.soton.emfb.name="act28" ac.soton.emfb.updatedExpression="atmDepAmM ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ ∅" ac.soton.emfb.name="act17" ac.soton.emfb.updatedExpression="sendReqDep ≔ ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ ∅" ac.soton.emfb.name="act19" ac.soton.emfb.updatedExpression="sendRespDep ≔ ∅" name="internal_element4"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="mMW_D" ac.soton.emfb.name="sendReqDeposit" ac.soton.emfb.newName="sendReqDeposit" name="internal_element2">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM(a) ≔ c" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="cardInAtmM(a) ≔ c" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ sendReqDep ∪ {a}" ac.soton.emfb.name="act4" ac.soton.emfb.updatedExpression="sendReqDep ≔ sendReqDep ∪ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM(a) ≔ am" ac.soton.emfb.name="act5" ac.soton.emfb.updatedExpression="atmDepAmM(a) ≔ am" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ CARD" ac.soton.emfb.name="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="typing_a" ac.soton.emfb.updatedExpression="a ∈ ATM" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℕ1" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="am ∈ ℕ1" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" 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="mMW_D" ac.soton.emfb.name="recvReqDeposit" ac.soton.emfb.newName="recvReqDeposit" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ sendReqDep ∖ {a}" ac.soton.emfb.name="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="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 = atmDepAmM(a)" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="am = atmDepAmM(a)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="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="grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmDepAmM)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendReqDep" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a ∈ sendReqDep" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtmM" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a ↦ c ∈ cardInAtmM" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ∈ ℤ" ac.soton.emfb.name="typing_am" ac.soton.emfb.updatedExpression="am ∈ ℤ" 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="mMW_D" ac.soton.emfb.name="sendRespDeposit" ac.soton.emfb.newName="sendRespDeposit" name="internal_element4">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ sendRespDep ∪ {a}" ac.soton.emfb.name="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="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="mMW_D" ac.soton.emfb.name="recvRespDeposit" ac.soton.emfb.newName="recvRespDeposit" name="internal_element5">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ≔ {a} ⩤ atmDepAmM" ac.soton.emfb.name="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="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="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 ∈ ATM" ac.soton.emfb.name="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 ∈ dom(atmDepAmM)" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="a ∈ dom(atmDepAmM)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ sendRespDep" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a ∈ sendRespDep" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmM)" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a ∈ dom(cardInAtmM)" 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.composedContext ac.soton.emfb.compose="true" ac.soton.emfb.name="Context_mMW_T" 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="Context_mMW_D" 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="CARD" ac.soton.emfb.newName="CARD" name="internal_element2"/>
</ac.soton.emfb.composedContext>
<ac.soton.emfb.composedContext ac.soton.emfb.compose="true" ac.soton.emfb.name="Context_MW_W" 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_W" 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="atmWDAmM ≔ ∅" ac.soton.emfb.name="act31" ac.soton.emfb.updatedExpression="atmWDAmM ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDOk ≔  ∅" ac.soton.emfb.name="act22" ac.soton.emfb.updatedExpression="sendRespWDOk ≔  ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqWD ≔  ∅" ac.soton.emfb.name="act20" ac.soton.emfb.updatedExpression="sendReqWD ≔  ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespWDFail ≔  ∅" ac.soton.emfb.name="act24" ac.soton.emfb.updatedExpression="sendRespWDFail ≔  ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act29" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element5"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="mMW_T" 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="destAccM≔ ∅" ac.soton.emfb.name="act41" ac.soton.emfb.updatedExpression="destAccM≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ≔ ∅" ac.soton.emfb.name="act40" ac.soton.emfb.updatedExpression="srcAccM ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act36" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqTransfer ≔  ∅" ac.soton.emfb.name="act27" ac.soton.emfb.updatedExpression="sendReqTransfer ≔  ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ≔ ∅" ac.soton.emfb.name="act38" ac.soton.emfb.updatedExpression="trAmountM ≔ ∅" name="internal_element5"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferFail ≔  ∅" ac.soton.emfb.name="act25" ac.soton.emfb.updatedExpression="sendRespTransferFail ≔  ∅" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespTransferOk ≔  ∅" ac.soton.emfb.name="act29" ac.soton.emfb.updatedExpression="sendRespTransferOk ≔  ∅" name="internal_element7"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="mMW_D" ac.soton.emfb.name="INITIALISATION" ac.soton.emfb.newName="INITIALISATION" name="internal_element3">
<ac.soton.emfb.composedAction ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act26" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ≔ ∅" ac.soton.emfb.name="act28" ac.soton.emfb.updatedExpression="atmDepAmM ≔ ∅" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendReqDep ≔ ∅" ac.soton.emfb.name="act17" ac.soton.emfb.updatedExpression="sendReqDep ≔ ∅" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="sendRespDep ≔ ∅" ac.soton.emfb.name="act19" ac.soton.emfb.updatedExpression="sendRespDep ≔ ∅" name="internal_element4"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.eventComposition>
</ac.soton.emfb.compositionFile>
