<?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="BalTransfer_4" ac.soton.emfb.newName="BalTransfer_4" name="internal_element1">
<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="validCard" ac.soton.emfb.newName="validCard" name="internal_element2"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardAcct" ac.soton.emfb.newName="cardAcct" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardInAtm" ac.soton.emfb.newName="cardInAtm" name="internal_element4"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="transferOk" ac.soton.emfb.newName="transferOk" name="internal_element5"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="transferFail" ac.soton.emfb.newName="transferFail" name="internal_element6"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trAmount" ac.soton.emfb.newName="trAmount" name="internal_element7"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="transOkAtm" ac.soton.emfb.newName="transOkAtm" name="internal_element8"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="srcAcc" ac.soton.emfb.newName="srcAcc" name="internal_element9"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="destAcc" ac.soton.emfb.newName="destAcc" name="internal_element10"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendReqTransfer" ac.soton.emfb.newName="sendReqTransfer" name="internal_element11"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvReqTransfer" ac.soton.emfb.newName="recvReqTransfer" name="internal_element12"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespTransferOk" ac.soton.emfb.newName="sendRespTransferOk" name="internal_element13"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvRespTransferOk" ac.soton.emfb.newName="recvRespTransferOk" name="internal_element14"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespTransferFail" ac.soton.emfb.newName="sendRespTransferFail" name="internal_element15"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvRespTransferFail" ac.soton.emfb.newName="recvRespTransferFail" name="internal_element16"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trAmountM" ac.soton.emfb.newName="trAmountM" name="internal_element17"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trans" ac.soton.emfb.newName="transT" name="internal_element18"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trAmountB" ac.soton.emfb.newName="trAmountB" name="internal_element19"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="srcAccM" ac.soton.emfb.newName="srcAccM" name="internal_element20"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="destAccM" ac.soton.emfb.newName="destAccM" name="internal_element21"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="srcAccB" ac.soton.emfb.newName="srcAccB" name="internal_element22"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="destAccB" ac.soton.emfb.newName="destAccB" name="internal_element23"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardInAtmM" ac.soton.emfb.newName="cardInAtmM" name="internal_element24"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="cardInAtmB" ac.soton.emfb.newName="cardInAtmB" name="internal_element25"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ∈ ATM ⇸ CARD" ac.soton.emfb.name="inv2" ac.soton.emfb.updatedExpression="cardInAtmM∈ATM ⇸ CARD" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountM ∈ ATM ⇸ ℕ1" ac.soton.emfb.name="inv3" ac.soton.emfb.updatedExpression="trAmountM∈ATM ⇸ ℕ1" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccM ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="inv21" ac.soton.emfb.updatedExpression="srcAccM∈ATM ⇸ ACCOUNT" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccM ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="inv22" ac.soton.emfb.updatedExpression="destAccM∈ATM ⇸ ACCOUNT" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="inv23" ac.soton.emfb.updatedExpression="srcAccB∈ATM ⇸ ACCOUNT" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB ∈ ATM ⇸ ACCOUNT" ac.soton.emfb.name="inv24" ac.soton.emfb.updatedExpression="destAccB∈ATM ⇸ ACCOUNT" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ∈ ATM ⇸ CARD" ac.soton.emfb.name="inv5" ac.soton.emfb.updatedExpression="cardInAtmB∈ATM ⇸ CARD" name="internal_element7"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ∈ ATM ⇸ ℕ1" ac.soton.emfb.name="inv6" ac.soton.emfb.updatedExpression="trAmountB∈ATM ⇸ ℕ1" name="internal_element8"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ dom(trAmountM) ⇒  a ∈ dom(trAmount) ∧ trAmountM(a) = trAmount(a)" ac.soton.emfb.name="inv12" ac.soton.emfb.updatedExpression="∀a·a∈dom(trAmountM)⇒a∈dom(trAmount)∧trAmountM(a)=trAmount(a)" name="internal_element9"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ recvReqTransfer ∧ a ∈ dom(trAmountB) ⇒ a ∈ dom(trAmountM) ∧ trAmountB(a) = trAmountM(a) " ac.soton.emfb.name="inv13" ac.soton.emfb.updatedExpression="∀a·a∈recvReqTransfer∧a∈dom(trAmountB)⇒a∈dom(trAmountM)∧trAmountB(a)=trAmountM(a)" name="internal_element10"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ dom(srcAccM) ⇒  a ∈ dom(srcAcc) ∧ srcAccM(a) = srcAcc(a)" ac.soton.emfb.name="inv25" ac.soton.emfb.updatedExpression="∀a·a∈dom(srcAccM)⇒a∈dom(srcAcc)∧srcAccM(a)=srcAcc(a)" name="internal_element11"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ recvReqTransfer ∧ a ∈ dom(srcAccB) ⇒  a ∈ dom(srcAccM) ∧ srcAccB(a) = srcAccM(a)" ac.soton.emfb.name="inv17" ac.soton.emfb.updatedExpression="∀a·a∈recvReqTransfer∧a∈dom(srcAccB)⇒a∈dom(srcAccM)∧srcAccB(a)=srcAccM(a)" name="internal_element12"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ dom(destAccM) ⇒  a ∈ dom(destAcc) ∧ destAccM(a) = destAcc(a)" ac.soton.emfb.name="inv26" ac.soton.emfb.updatedExpression="∀a·a∈dom(destAccM)⇒a∈dom(destAcc)∧destAccM(a)=destAcc(a)" name="internal_element13"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ recvReqTransfer ∧ a ∈ dom(destAccB) ⇒  a ∈ dom(destAccM) ∧ destAccB(a) = destAccM(a)" ac.soton.emfb.name="inv18" ac.soton.emfb.updatedExpression="∀a·a∈recvReqTransfer∧a∈dom(destAccB)⇒a∈dom(destAccM)∧destAccB(a)=destAccM(a)" name="internal_element14"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ dom(cardInAtmM) ⇒ a ∈ dom(cardInAtm) ∧ cardInAtmM(a) = cardInAtm(a)" ac.soton.emfb.name="inv27" ac.soton.emfb.updatedExpression="∀a·a∈dom(cardInAtmM)⇒a∈dom(cardInAtm)∧cardInAtmM(a)=cardInAtm(a)" name="internal_element15"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀a · a ∈ recvReqTransfer ∧ a ∈ dom(cardInAtmB) ⇒ a ∈ dom(cardInAtmM) ∧ cardInAtmB(a) = cardInAtmM(a)" ac.soton.emfb.name="inv28" ac.soton.emfb.updatedExpression="∀a·a∈recvReqTransfer∧a∈dom(cardInAtmB)⇒a∈dom(cardInAtmM)∧cardInAtmB(a)=cardInAtmM(a)" name="internal_element16"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="BalTransfer_4" 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="trAmountB ≔ ∅" ac.soton.emfb.name="act32" ac.soton.emfb.updatedExpression="trAmountB ≔ ∅" name="internal_element2"/>
<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_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ ∅" ac.soton.emfb.name="act31" ac.soton.emfb.updatedExpression="cardInAtmB ≔ ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act36" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element5"/>
<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_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB≔ ∅" ac.soton.emfb.name="act42" ac.soton.emfb.updatedExpression="srcAccB ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB  ≔ ∅" ac.soton.emfb.name="act43" ac.soton.emfb.updatedExpression="destAccB ≔ ∅" name="internal_element8"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="BalTransfer_4" ac.soton.emfb.name="SendReqTransfer" ac.soton.emfb.newName="SendReqTransfer" name="internal_element2">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" 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="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 ≔ cardInAtmM{a ↦ c}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∪ {a}" ac.soton.emfb.name="act11" ac.soton.emfb.updatedExpression="transT ≔ transT∪{a}" name="internal_element3"/>
<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 ≔ destAccM{a ↦ dest_ac}" name="internal_element4"/>
<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 ≔ trAmountM{a ↦ am}" name="internal_element5"/>
<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 ≔ srcAccM{a ↦ src_ac}" name="internal_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAcc(a) ≔ dest_ac" ac.soton.emfb.name="act4" ac.soton.emfb.updatedExpression="destAcc ≔ destAcc{a ↦ dest_ac}" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmount(a) ≔ am" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="trAmount ≔ trAmount{a ↦ am}" name="internal_element8"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAcc(a) ≔ src_ac" ac.soton.emfb.name="act3" ac.soton.emfb.updatedExpression="srcAcc ≔ srcAcc{a ↦ src_ac}" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∉ trans" ac.soton.emfb.name="grd11" ac.soton.emfb.updatedExpression="a∉transT" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ↦ c ∈ cardInAtm" ac.soton.emfb.name="grd7" ac.soton.emfb.updatedExpression="a ↦ c∈cardInAtm" name="internal_element2"/>
<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_element3"/>
<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_element4"/>
<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_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="c∈validCard" name="internal_element6"/>
<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_element7"/>
<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_element8"/>
<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="BalTransfer_4" ac.soton.emfb.name="RecvReqTransfer" ac.soton.emfb.newName="RecvReqTransfer" name="internal_element3">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="RecvReqTransfer" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB(a) ≔ dest_ac" ac.soton.emfb.name="act10" ac.soton.emfb.updatedExpression="destAccB ≔ destAccB{a ↦ dest_ac}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB(a) ≔ c" ac.soton.emfb.name="act8" ac.soton.emfb.updatedExpression="cardInAtmB ≔ cardInAtmB{a ↦ c}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB(a) ≔ src_ac" ac.soton.emfb.name="act9" ac.soton.emfb.updatedExpression="srcAccB ≔ srcAccB{a ↦ src_ac}" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB(a) ≔ am" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="trAmountB ≔ trAmountB{a ↦ am}" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔ recvReqTransfer ∪ {a}" ac.soton.emfb.name="act4" ac.soton.emfb.updatedExpression="recvReqTransfer ≔ recvReqTransfer∪{a}" name="internal_element5"/>
<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_element6"/>
<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_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_element2"/>
<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_element3"/>
<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_element4"/>
<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_element5"/>
<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_element6"/>
<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_element7"/>
<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_element8"/>
<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="BalTransfer_4" ac.soton.emfb.name="TransferOK" ac.soton.emfb.newName="TransferOK" name="internal_element4">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="TransferOK" name="internal_element1"/>
<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="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="recvReqTransfer ≔ recvReqTransfer ∖ {a}" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="recvReqTransfer ≔ recvReqTransfer ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ≔ transferOk ∪ {a}" ac.soton.emfb.name="act5" ac.soton.emfb.updatedExpression="transTferOk ≔ transTferOk∪{a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am ≤ bal(src_ac)" ac.soton.emfb.name="grd9" ac.soton.emfb.updatedExpression="am≤bal(src_ac)" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac ∈ dom(bal)" ac.soton.emfb.name="grd7" ac.soton.emfb.updatedExpression="dest_ac∈dom(bal)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="grd11" ac.soton.emfb.updatedExpression="a∈dom(cardInAtmB)" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="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="am ∈ ℕ1" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="am∈ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(trAmountB)" ac.soton.emfb.name="grd13" ac.soton.emfb.updatedExpression="a∈dom(trAmountB)" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ dom(bal)" ac.soton.emfb.name="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="c = cardInAtmB(a)" ac.soton.emfb.name="grd12" ac.soton.emfb.updatedExpression="c=cardInAtmB(a)" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqTransfer" ac.soton.emfb.name="grd24" ac.soton.emfb.updatedExpression="a∈recvReqTransfer" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac = destAccB(a)" ac.soton.emfb.name="grd15" ac.soton.emfb.updatedExpression="dest_ac=destAccB(a)" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac = srcAccB(a)" ac.soton.emfb.name="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="c ↦ src_ac ∈ cardAcct" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="c ↦ src_ac∈cardAcct" name="internal_element12"/>
<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_element13"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = trAmountB(a)" ac.soton.emfb.name="grd16" ac.soton.emfb.updatedExpression="am=trAmountB(a)" name="internal_element14"/>
<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_element15"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(destAccB)" ac.soton.emfb.name="grd21" ac.soton.emfb.updatedExpression="a∈dom(destAccB)" name="internal_element16"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(srcAccB)" ac.soton.emfb.name="grd20" ac.soton.emfb.updatedExpression="a∈dom(srcAccB)" name="internal_element17"/>
<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="BalTransfer_4" ac.soton.emfb.name="SendRespTransferOk" ac.soton.emfb.newName="SendRespTransferOk" name="internal_element5">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="SendRespTransferOk" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB ≔  {a} ⩤ destAccB" ac.soton.emfb.name="act13" ac.soton.emfb.updatedExpression="destAccB ≔ {a} ⩤ destAccB" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB ≔  {a} ⩤ srcAccB" ac.soton.emfb.name="act12" ac.soton.emfb.updatedExpression="srcAccB ≔ {a} ⩤ srcAccB" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ {a} ⩤ cardInAtmB" ac.soton.emfb.name="act11" ac.soton.emfb.updatedExpression="cardInAtmB ≔ {a} ⩤ cardInAtmB" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ≔ {a} ⩤ trAmountB" ac.soton.emfb.name="act9" ac.soton.emfb.updatedExpression="trAmountB ≔ {a} ⩤ trAmountB" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferOk ≔  transferOk ∖ {a}" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="transTferOk ≔ transTferOk ∖ {a}" name="internal_element5"/>
<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_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ transferOk" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a∈transTferOk" 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="BalTransfer_4" ac.soton.emfb.name="RecvRespTransferOk" ac.soton.emfb.newName="RecvRespTransferOk" name="internal_element6">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="RecvRespTransferOk" name="internal_element1"/>
<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="recvRespTransferOk ≔  recvRespTransferOk ∪ {a}" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="recvRespTransferOk ≔ recvRespTransferOk∪{a}" name="internal_element2"/>
<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_element3"/>
<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_element4"/>
<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_element5"/>
<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_element6"/>
<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_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="BalTransfer_4" ac.soton.emfb.name="TransferFails" ac.soton.emfb.newName="TransferFails" name="internal_element7">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="TransferFails" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ≔  transferFail ∪ {a}" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="transTferFail ≔ transTferFail∪{a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqTransfer ≔ recvReqTransfer ∖ {a}" ac.soton.emfb.name="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="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="dest_ac ∈ dom(bal)" ac.soton.emfb.name="grd7" ac.soton.emfb.updatedExpression="dest_ac∈dom(bal)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="grd11" ac.soton.emfb.updatedExpression="a∈dom(cardInAtmB)" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ≠ dest_ac" ac.soton.emfb.name="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="am ∈ ℕ1" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="am∈ℕ1" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(trAmountB)" ac.soton.emfb.name="grd13" ac.soton.emfb.updatedExpression="a∈dom(trAmountB)" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac ∈ dom(bal)" ac.soton.emfb.name="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="c = cardInAtmB(a)" ac.soton.emfb.name="grd12" ac.soton.emfb.updatedExpression="c=cardInAtmB(a)" name="internal_element8"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="dest_ac = destAccB(a)" ac.soton.emfb.name="grd15" ac.soton.emfb.updatedExpression="dest_ac=destAccB(a)" name="internal_element9"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="src_ac = srcAccB(a)" ac.soton.emfb.name="grd14" ac.soton.emfb.updatedExpression="src_ac=srcAccB(a)" name="internal_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqTransfer" ac.soton.emfb.name="grd22" ac.soton.emfb.updatedExpression="a∈recvReqTransfer" name="internal_element11"/>
<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_element12"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="am = trAmountB(a)" ac.soton.emfb.name="grd16" ac.soton.emfb.updatedExpression="am=trAmountB(a)" name="internal_element13"/>
<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_element14"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(destAccB)" ac.soton.emfb.name="grd21" ac.soton.emfb.updatedExpression="a∈dom(destAccB)" name="internal_element15"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(srcAccB)" ac.soton.emfb.name="grd20" ac.soton.emfb.updatedExpression="a∈dom(srcAccB)" name="internal_element16"/>
<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="BalTransfer_4" ac.soton.emfb.name="SendRespTransferFail" ac.soton.emfb.newName="SendRespTransferFail" name="internal_element8">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="SendRespTransferFail" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB ≔  {a} ⩤ destAccB" ac.soton.emfb.name="act13" ac.soton.emfb.updatedExpression="destAccB ≔ {a} ⩤ destAccB" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB ≔  {a} ⩤ srcAccB" ac.soton.emfb.name="act12" ac.soton.emfb.updatedExpression="srcAccB ≔ {a} ⩤ srcAccB" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ {a} ⩤ cardInAtmB" ac.soton.emfb.name="act11" ac.soton.emfb.updatedExpression="cardInAtmB ≔ {a} ⩤ cardInAtmB" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trAmountB ≔ {a} ⩤ trAmountB" ac.soton.emfb.name="act9" ac.soton.emfb.updatedExpression="trAmountB ≔ {a} ⩤ trAmountB" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transferFail ≔  transferFail ∖ {a}" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="transTferFail ≔ transTferFail ∖ {a}" name="internal_element5"/>
<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_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ transferFail" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="a∈transTferFail" 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="BalTransfer_4" ac.soton.emfb.name="RecvRespTransferFail" ac.soton.emfb.newName="RecvRespTransferFail" name="internal_element9">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="RecvRespTransferFail" name="internal_element1"/>
<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="recvRespTransferFail ≔  recvRespTransferFail ∪ {a}" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="recvRespTransferFail ≔ recvRespTransferFail∪{a}" name="internal_element2"/>
<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_element3"/>
<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_element4"/>
<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_element5"/>
<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_element6"/>
<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_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="BalTransfer_4" ac.soton.emfb.name="TransferOKAtm" ac.soton.emfb.newName="TransferOKAtm" name="internal_element10">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="TransferOKAtm" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm(a) ≔  TRUE" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="transTOkAtm ≔ transTOkAtm{a ↦ TRUE}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferOk ≔ recvRespTransferOk ∖ {a}" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="recvRespTransferOk ≔ recvRespTransferOk ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∖ {a}" ac.soton.emfb.name="act7" ac.soton.emfb.updatedExpression="transT ≔ transT ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvRespTransferOk" ac.soton.emfb.name="grd11" ac.soton.emfb.updatedExpression="a∈recvRespTransferOk" 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="BalTransfer_4" ac.soton.emfb.name="TransferFailsAtm" ac.soton.emfb.newName="TransferFailsAtm" name="internal_element11">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="TransferFailsAtm" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="transOkAtm(a) ≔  FALSE" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="transTOkAtm ≔ transTOkAtm{a ↦ FALSE}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvRespTransferFail ≔ recvRespTransferFail ∖ {a}" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="recvRespTransferFail ≔ recvRespTransferFail ∖ {a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="trans ≔ trans ∖ {a}" ac.soton.emfb.name="act7" ac.soton.emfb.updatedExpression="transT ≔ transT ∖ {a}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvRespTransferFail" ac.soton.emfb.name="grd11" ac.soton.emfb.updatedExpression="a∈recvRespTransferFail" 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="false" ac.soton.emfb.machine="BalTransfer_4" ac.soton.emfb.name="Deposit" ac.soton.emfb.newName="Deposit" name="internal_element12">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="Deposit" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.composedMachine>
<ac.soton.emfb.composedMachine ac.soton.emfb.compose="true" ac.soton.emfb.name="Deposit_4" ac.soton.emfb.newName="Deposit_4" name="internal_element2">
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="false" ac.soton.emfb.name="bal" ac.soton.emfb.newName="bal" name="internal_element1"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="false" ac.soton.emfb.name="validCard" ac.soton.emfb.newName="validCard" name="internal_element2"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="false" ac.soton.emfb.name="cardAcct" ac.soton.emfb.newName="cardAcct" name="internal_element3"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmCash" ac.soton.emfb.newName="atmCash" name="internal_element4"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="false" ac.soton.emfb.name="cardInAtm" ac.soton.emfb.newName="cardInAtm" name="internal_element5"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="trans" ac.soton.emfb.newName="transD" name="internal_element6"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="processedDep" ac.soton.emfb.newName="processedDep" name="internal_element7"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAm" ac.soton.emfb.newName="atmDepAm" name="internal_element8"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmCashA" ac.soton.emfb.newName="atmCashA" name="internal_element9"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendReqDep" ac.soton.emfb.newName="sendReqDep" name="internal_element10"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="recvReqDep" ac.soton.emfb.newName="recvReqDep" name="internal_element11"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="sendRespDep" ac.soton.emfb.newName="sendRespDep" 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.composedVariable ac.soton.emfb.compose="false" ac.soton.emfb.name="cardInAtmM" ac.soton.emfb.newName="cardInAtmM" name="internal_element14"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="false" ac.soton.emfb.name="cardInAtmB" ac.soton.emfb.newName="cardInAtmB" name="internal_element15"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAmM" ac.soton.emfb.newName="atmDepAmM" name="internal_element16"/>
<ac.soton.emfb.composedVariable ac.soton.emfb.compose="true" ac.soton.emfb.name="atmDepAmB" ac.soton.emfb.newName="atmDepAmB" name="internal_element17"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmB ∈ ATM ⇸ CARD" ac.soton.emfb.name="inv3" ac.soton.emfb.updatedExpression="cardInAtmB∈ATM ⇸ CARD" name="internal_element1"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmM ∈ ATM ⇸ CARD" ac.soton.emfb.name="inv4" ac.soton.emfb.updatedExpression="cardInAtmM∈ATM ⇸ CARD" name="internal_element2"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB ∈ ATM ⇸ ℕ" ac.soton.emfb.name="inv5" ac.soton.emfb.updatedExpression="atmDepAmB∈ATM ⇸ ℕ" name="internal_element3"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmM ∈ ATM ⇸ ℕ" ac.soton.emfb.name="inv6" ac.soton.emfb.updatedExpression="atmDepAmM∈ATM ⇸ ℕ" name="internal_element4"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ a· a ∈ dom(cardInAtm) ∧ a ∈ dom(cardInAtmB) ⇒ cardInAtm(a) = cardInAtmB(a)" ac.soton.emfb.name="inv7" ac.soton.emfb.updatedExpression="∀a·a∈dom(cardInAtm)∧a∈dom(cardInAtmB)⇒cardInAtm(a)=cardInAtmB(a)" name="internal_element5"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ a· a ∈ dom(cardInAtm) ∧ a ∈ dom(cardInAtmM) ⇒ cardInAtm(a) = cardInAtmM(a)" ac.soton.emfb.name="inv8" ac.soton.emfb.updatedExpression="∀a·a∈dom(cardInAtm)∧a∈dom(cardInAtmM)⇒cardInAtm(a)=cardInAtmM(a)" name="internal_element6"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ a · a ∈ dom(atmDepAmM) ⇒ a ∈ dom(atmDepAm) ∧ atmDepAmM(a) = atmDepAm(a)" ac.soton.emfb.name="inv9" ac.soton.emfb.updatedExpression="∀a·a∈dom(atmDepAmM)⇒a∈dom(atmDepAm)∧atmDepAmM(a)=atmDepAm(a)" name="internal_element7"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ a · a ∈ dom(atmDepAmB) ∧ a ∈ recvReqDep ⇒ a ∈ dom(atmDepAm) ∧ atmDepAm(a) = atmDepAmB(a)" ac.soton.emfb.name="inv10" ac.soton.emfb.updatedExpression="∀a·a∈dom(atmDepAmB)∧a∈recvReqDep⇒a∈dom(atmDepAm)∧atmDepAm(a)=atmDepAmB(a)" name="internal_element8"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ a · a ∈ dom(cardInAtmM) ⇒ a ∈ dom(cardInAtm)" ac.soton.emfb.name="inv11" ac.soton.emfb.updatedExpression="∀a·a∈dom(cardInAtmM)⇒a∈dom(cardInAtm)" name="internal_element9"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="∀ a · a ∈ dom(cardInAtmB) ⇒ a ∈ dom(cardInAtm)" ac.soton.emfb.name="inv12" ac.soton.emfb.updatedExpression="∀a·a∈dom(cardInAtmB)⇒a∈dom(cardInAtm)" name="internal_element10"/>
<ac.soton.emfb.composedInvariant ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ⊆ cardInAtm" ac.soton.emfb.name="inv13" ac.soton.emfb.updatedExpression="cardInAtmM⊆cardInAtm" name="internal_element11"/>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Deposit_4" 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="act27" ac.soton.emfb.updatedExpression="atmDepAmB ≔ ∅" 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_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmB ≔ ∅" ac.soton.emfb.name="act25" ac.soton.emfb.updatedExpression="cardInAtmB ≔ ∅" name="internal_element3"/>
<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_element4"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Deposit_4" ac.soton.emfb.name="sendReqDeposit" ac.soton.emfb.newName="sendReqDeposit" name="internal_element2">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="sendReqDeposit" name="internal_element1"/>
<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 ≔ 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 ≔ atmDepAmM{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="act2" ac.soton.emfb.updatedExpression="transD ≔ transD∪{a}" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAm(a) ≔ am" ac.soton.emfb.name="act3" ac.soton.emfb.updatedExpression="atmDepAm ≔ atmDepAm{a ↦ am}" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∉ trans" ac.soton.emfb.name="grd9" ac.soton.emfb.updatedExpression="a∉transD" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtm(a) = c" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="cardInAtm(a)=c" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ validCard" ac.soton.emfb.name="grd6" ac.soton.emfb.updatedExpression="c∈validCard" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ∈ ran(cardInAtm)" ac.soton.emfb.name="grd3" ac.soton.emfb.updatedExpression="c∈ran(cardInAtm)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtm)" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="a∈dom(cardInAtm)" name="internal_element5"/>
<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_element6"/>
<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="Deposit_4" ac.soton.emfb.name="recvReqDeposit" ac.soton.emfb.newName="recvReqDeposit" name="internal_element3">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="recvReqDeposit" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ≔ recvReqDep ∪ {a}" ac.soton.emfb.name="act1" ac.soton.emfb.updatedExpression="recvReqDep ≔ recvReqDep∪{a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB(a) ≔ c" ac.soton.emfb.name="act6" ac.soton.emfb.updatedExpression="cardInAtmB ≔ cardInAtmB{a ↦ c}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB(a) ≔ am" ac.soton.emfb.name="act5" ac.soton.emfb.updatedExpression="atmDepAmB ≔ atmDepAmB{a ↦ am}" 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_element4"/>
<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_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 ∈ sendReqDep" ac.soton.emfb.name="grd1" ac.soton.emfb.updatedExpression="a∈sendReqDep" name="internal_element3"/>
<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_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.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="Deposit_4" ac.soton.emfb.name="depositB" ac.soton.emfb.newName="depositB" name="internal_element4">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="depositB" 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="act1" ac.soton.emfb.updatedExpression="bal ≔ bal{acc ↦ bal(acc)+am}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ≔ processedDep ∪ {a}" ac.soton.emfb.name="act5" ac.soton.emfb.updatedExpression="processedDep ≔ processedDep∪{a}" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmCash(a) ≔ atmCash(a) + am" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="atmCash ≔ atmCash{a ↦ atmCash(a)+am}" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmDepAmB)" ac.soton.emfb.name="grd11" ac.soton.emfb.updatedExpression="a∈dom(atmDepAmB)" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB(a) = c" ac.soton.emfb.name="grd9" ac.soton.emfb.updatedExpression="cardInAtmB(a)=c" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmCash)" ac.soton.emfb.name="grd7" ac.soton.emfb.updatedExpression="a∈dom(atmCash)" name="internal_element3"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(cardInAtmB)" ac.soton.emfb.name="grd8" ac.soton.emfb.updatedExpression="a∈dom(cardInAtmB)" name="internal_element4"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqDep" ac.soton.emfb.name="grd13" ac.soton.emfb.updatedExpression="a∈recvReqDep" name="internal_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="c ↦ acc ∈ cardAcct" ac.soton.emfb.name="grd5" ac.soton.emfb.updatedExpression="c ↦ acc∈cardAcct" name="internal_element6"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB(a) = am" ac.soton.emfb.name="grd12" ac.soton.emfb.updatedExpression="atmDepAmB(a)=am" name="internal_element7"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ ATM" ac.soton.emfb.name="grd6" ac.soton.emfb.updatedExpression="a∈ATM" name="internal_element8"/>
<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_element9"/>
<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_element10"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="acc ∈ dom(bal)" ac.soton.emfb.name="grd2" ac.soton.emfb.updatedExpression="acc∈dom(bal)" name="internal_element11"/>
<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="Deposit_4" ac.soton.emfb.name="sendRespDeposit" ac.soton.emfb.newName="sendRespDeposit" name="internal_element5">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="sendRespDeposit" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="recvReqDep ≔ recvReqDep ∖ {a}" ac.soton.emfb.name="act10" ac.soton.emfb.updatedExpression="recvReqDep ≔ recvReqDep ∖ {a}" name="internal_element1"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="atmDepAmB ≔ {a} ⩤ atmDepAmB" ac.soton.emfb.name="act8" ac.soton.emfb.updatedExpression="atmDepAmB ≔ {a} ⩤ atmDepAmB" name="internal_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ {a} ⩤ cardInAtmB" ac.soton.emfb.name="act9" ac.soton.emfb.updatedExpression="cardInAtmB ≔ {a} ⩤ cardInAtmB" name="internal_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="processedDep ≔ processedDep ∖ {a}" ac.soton.emfb.name="act2" ac.soton.emfb.updatedExpression="processedDep ≔ processedDep ∖ {a}" 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_element5"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ recvReqDep" ac.soton.emfb.name="grd6" ac.soton.emfb.updatedExpression="a∈recvReqDep" name="internal_element1"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ dom(atmDepAmB)" ac.soton.emfb.name="grd4" ac.soton.emfb.updatedExpression="a∈dom(atmDepAmB)" name="internal_element2"/>
<ac.soton.emfb.composedGuard ac.soton.emfb.compose="true" ac.soton.emfb.expression="a ∈ processedDep" ac.soton.emfb.name="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="grd2" ac.soton.emfb.updatedExpression="a∈dom(cardInAtmB)" 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="Deposit_4" ac.soton.emfb.name="recvRespDeposit" ac.soton.emfb.newName="recvRespDeposit" name="internal_element6">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="recvRespDeposit" name="internal_element1"/>
<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="recvRespDep ≔ recvRespDep ∪ {a}" ac.soton.emfb.name="act4" ac.soton.emfb.updatedExpression="recvRespDep ≔ recvRespDep∪{a}" name="internal_element3"/>
<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_element4"/>
<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_element1"/>
<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_element2"/>
<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_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.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Deposit_4" ac.soton.emfb.name="depositATM" ac.soton.emfb.newName="depositATM" name="internal_element7">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="depositATM" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="false" ac.soton.emfb.machine="Deposit_4" ac.soton.emfb.name="Transfer" ac.soton.emfb.newName="Transfer" name="internal_element8">
<ac.soton.emfb.composedEventRefines ac.soton.emfb.compose="true" ac.soton.emfb.newName="Transfer" name="internal_element1"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.composedMachine>
<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="BalTransfer_4" 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="trAmountB ≔ ∅" ac.soton.emfb.name="act32" ac.soton.emfb.updatedExpression="trAmountB ≔ ∅" name="internal_element2"/>
<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_element3"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmB ≔ ∅" ac.soton.emfb.name="act31" ac.soton.emfb.updatedExpression="cardInAtmB ≔ ∅" name="internal_element4"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="cardInAtmM ≔ ∅" ac.soton.emfb.name="act36" ac.soton.emfb.updatedExpression="cardInAtmM ≔ ∅" name="internal_element5"/>
<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_element6"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="srcAccB≔ ∅" ac.soton.emfb.name="act42" ac.soton.emfb.updatedExpression="srcAccB ≔ ∅" name="internal_element7"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="true" ac.soton.emfb.expression="destAccB  ≔ ∅" ac.soton.emfb.name="act43" ac.soton.emfb.updatedExpression="destAccB ≔ ∅" name="internal_element8"/>
</ac.soton.emfb.composedEvent>
<ac.soton.emfb.composedEvent ac.soton.emfb.compose="true" ac.soton.emfb.machine="Deposit_4" 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="act27" ac.soton.emfb.updatedExpression="atmDepAmB ≔ ∅" 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_element2"/>
<ac.soton.emfb.composedAction ac.soton.emfb.compose="false" ac.soton.emfb.expression="cardInAtmB ≔ ∅" ac.soton.emfb.name="act25" ac.soton.emfb.updatedExpression="cardInAtmB ≔ ∅" name="internal_element3"/>
<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_element4"/>
</ac.soton.emfb.composedEvent>
</ac.soton.emfb.eventComposition>
<ac.soton.emfb.composedRefines ac.soton.emfb.compose="false" ac.soton.emfb.name="ATM_TD_3" name="internal_element1"/>
</ac.soton.emfb.compositionFile>
