<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.comment="refined the req and resp for receveing and sending req,resp" org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1292940909704" org.eventb.texttools.text_representation="machine Deposit_3 // refined the req and resp for receveing and sending req,resp&#10; refines Deposit_2  sees Deposit_CO1&#10;&#10;variables account atm bal atmCash atmCard validCard cardInAtm cardAccount AccBalOnAtm trans reqDep respDep processedDep atmDepAm atmCashA AccBalOnAtmA&#10;&#9;&#9;&#9;sentReqDep recvReqDep sentRespDep recvRespDep&#10;&#10;invariants&#10;  @inv1 sentReqDep ∈ ℙ(reqDep)&#10;  @inv2 recvReqDep ∈ ℙ(reqDep)&#10;  @inv3 sentRespDep ∈ ℙ(respDep)&#10;  @inv4 recvRespDep ∈ ℙ(respDep)&#10;  @inv5 partition(reqDep, sentReqDep, recvReqDep)&#10;  @inv6 partition(respDep, sentRespDep, recvRespDep)&#10;&#10;events&#10;  event INITIALISATION&#10;    then&#10;      @act1 account ≔ ∅&#10;      @act2 atm ≔ ∅&#10;      @act3 bal ≔ ∅&#10;      @act4 atmCash ≔ ∅&#10;      @act5 atmCard ≔ ∅&#10;      @act6 validCard ≔ ∅&#10;      @act7 cardInAtm ≔ ∅&#10;      @act8 cardAccount ≔ ∅&#10;      @act11 AccBalOnAtm ≔ ∅&#10;      @act12 trans ≔  ∅&#10;      @act13 reqDep ≔  ∅&#10;      @act14 atmDepAm ≔ ∅&#10;      @act15 processedDep ≔ ∅&#10;      @act16 respDep ≔ ∅&#10;      @act17 sentReqDep ≔ ∅&#10;      @act18 recvReqDep ≔ ∅&#10;      @act19 sentRespDep ≔ ∅&#10;      @act20 recvRespDep ≔ ∅&#10;      @act21 atmCashA ≔ ∅&#10;      @act22 AccBalOnAtmA ≔ ∅&#10;  end&#10;&#10;  event sendReqDeposit refines reqDeposit&#10;    any c am a&#10;    where&#10;      @grd2 am ∈ ℕ&#10;      @grd3 c ∈ ran(cardInAtm)&#10;      @grd4 a ∈ dom(cardInAtm)&#10;      @grd5 cardInAtm(a) = c&#10;      @grd6 c ∈ validCard&#10;      @grd9 a ∉ trans&#10;    then&#10;      @act1 reqDep ≔ reqDep ∪ {a}&#10;      @act2 trans ≔ trans ∪ {a}&#10;      @act3 atmDepAm(a) ≔ am&#10;      @act4 sentReqDep ≔ sentReqDep ∪ {a}&#10;  end&#10;&#10;  event recvReqDeposit&#10;    any a&#10;    where&#10;      @grd1 a ∈ sentReqDep&#10;    then&#10;      @act1 recvReqDep ≔ recvReqDep ∪ {a}&#10;      @act2 sentReqDep ≔ sentReqDep ∖ {a}&#10;  end&#10;&#10;  event depositB refines depositB&#10;    any c am acc a&#10;    where&#10;      @grd1 acc ∈ account&#10;      @grd2 am ∈ ℕ&#10;      @grd3 c ∈ validCard&#10;      @grd4 a ∈ dom(cardInAtm)&#10;      @grd5 cardInAtm(a) = c&#10;      @grd6 c ↦ acc ∈ cardAccount&#10;      @grd7 a ∈ reqDep&#10;      @grd8 a ∈ dom(atmDepAm)&#10;      @grd9 atmDepAm(a) = am&#10;      @grd10 a ∈ recvReqDep&#10;    then&#10;      @act1 bal(acc) ≔ bal(acc) + am&#10;      @act2 atmCash(a) ≔ atmCash(a) + am&#10;      @act3 AccBalOnAtm(acc) ≔  bal(acc) + am&#10;      @act4 reqDep ≔ reqDep ∖ {a}&#10;      @act5 processedDep ≔ processedDep ∪ {a}&#10;      @act6 recvReqDep ≔ recvReqDep ∖ {a}&#10;  end&#10;&#10;  event sendRespDeposit refines respDeposit&#10;    any a&#10;    where&#10;      @grd1 a ∈ processedDep&#10;    then&#10;      @act1 respDep ≔ respDep ∪ {a}&#10;      @act2 processedDep ≔ processedDep ∖ {a}&#10;      @act3 sentRespDep ≔ sentRespDep ∪ {a}&#10;  end&#10;&#10;  event recvRespDeposit&#10;    any a&#10;    where&#10;      @grd1 a ∈ sentRespDep&#10;    then&#10;      @act4 recvRespDep ≔ recvRespDep ∪ {a}&#10;      @act5 sentRespDep ≔ sentRespDep ∖ {a}&#10;  end&#10;&#10;  event depositATM refines depositATM&#10;    any c am acc a&#10;    where&#10;      @grd1 acc ∈ account&#10;      @grd2 am ∈ ℕ&#10;      @grd3 c ∈ atmCard&#10;      @grd4 a ∈ dom(cardInAtm)&#10;      @grd5 cardInAtm(a) = c&#10;      @grd6 c ∈ validCard&#10;      @grd7 c ↦ acc ∈ cardAccount&#10;      @grd8 a ∈ respDep&#10;      @grd9 a ∈ dom (atmDepAm)&#10;      @grd10 atmDepAm(a) = am&#10;      @grd11 acc ∈ dom(AccBalOnAtmA)&#10;      @grd12 a ∈ recvRespDep&#10;    then&#10;      @act2 atmCashA(a) ≔ atmCashA(a) + am&#10;      @act3 AccBalOnAtmA(acc) ≔  AccBalOnAtmA(acc) + am&#10;      @act4 respDep ≔ respDep ∖ {a}&#10;      @act5 trans ≔ trans ∖ {a}&#10;      @act6 recvRespDep ≔ recvRespDep ∖ {a}&#10;  end&#10;end&#10;" version="5">
<org.eventb.core.refinesMachine name="_Vw1iAA0EEeCDh_sKUTn4vw" org.eventb.core.target="Deposit_2"/>
<org.eventb.core.seesContext name="_Vw1iAQ0EEeCDh_sKUTn4vw" org.eventb.core.target="Deposit_CO1"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="org.eventb.core.variable.bal.106" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="bal"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="_b0H3wOgxEd-Lbc8PVuKdog" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="validCard"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="_opL2sOtHEd-kIOCd7y5zgw" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="cardAcct"/>
<org.eventb.core.variable name="org.eventb.core.variable.atm_cash.108" org.eventb.core.identifier="atmCash"/>
<org.eventb.core.variable name="org.eventb.core.event.INITIALISATION.11:" org.eventb.core.identifier="cardInAtm"/>
<org.eventb.core.variable name="_lSkcgPZFEd-O8eDjmTF4AA" org.eventb.core.identifier="trans"/>
<org.eventb.core.variable name="_MsmdQfZOEd-O8eDjmTF4AA" org.eventb.core.identifier="processedDep"/>
<org.eventb.core.variable name="_lSlDkPZFEd-O8eDjmTF4AA" org.eventb.core.identifier="atmDepAm"/>
<org.eventb.core.variable name="_Yc0i8PcSEd-VE9yXNFfzhQ" org.eventb.core.identifier="atmCashA"/>
<org.eventb.core.variable name="_NL2HkPZaEd-O8eDjmTF4AA" org.eventb.core.identifier="sendReqDep"/>
<org.eventb.core.variable name="_NL2uoPZaEd-O8eDjmTF4AA" org.eventb.core.identifier="recvReqDep"/>
<org.eventb.core.variable name="_NL2uofZaEd-O8eDjmTF4AA" org.eventb.core.identifier="sendRespDep"/>
<org.eventb.core.variable name="_NL3VsPZaEd-O8eDjmTF4AA" org.eventb.core.identifier="recvRespDep"/>
<org.eventb.core.invariant name="_NL3VsfZaEd-O8eDjmTF4AA" org.eventb.core.label="inv1" org.eventb.core.predicate="sendReqDep ∈ ℙ(reqDep)"/>
<org.eventb.core.invariant name="_NL38wPZaEd-O8eDjmTF4AA" org.eventb.core.label="inv2" org.eventb.core.predicate="recvReqDep ∈ ℙ(reqDep)"/>
<org.eventb.core.invariant name="_NL4j0PZaEd-O8eDjmTF4AA" org.eventb.core.label="inv3" org.eventb.core.predicate="sendRespDep ∈ ℙ(respDep)"/>
<org.eventb.core.invariant name="_NL5K4PZaEd-O8eDjmTF4AA" org.eventb.core.label="inv4" org.eventb.core.predicate="recvRespDep ∈ ℙ(respDep)"/>
<org.eventb.core.invariant name="_2V5ZYPvREd-nUu4w92QEUg" org.eventb.core.label="inv5" org.eventb.core.predicate="partition(reqDep, sendReqDep, recvReqDep)"/>
<org.eventb.core.invariant name="_2V6AcPvREd-nUu4w92QEUg" org.eventb.core.label="inv6" org.eventb.core.predicate="partition(respDep, sendRespDep, recvRespDep)"/>
<org.eventb.core.event name="org.eventb.core.event.INITIALISATION.119" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="INITIALISATION">
<org.eventb.core.action name="org.eventb.core.action.atm_cash.init.127" org.eventb.core.assignment="bal ≔ ∅" org.eventb.core.label="act3"/>
<org.eventb.core.action name="_PSCWkOXIEd-el7FusQO1eQ" org.eventb.core.assignment="atmCash ≔ ATM × {0}" org.eventb.core.label="act4"/>
<org.eventb.core.action name="_PSC9oOXIEd-el7FusQO1eQ" org.eventb.core.assignment="validCard ≔ ∅" org.eventb.core.label="act6"/>
<org.eventb.core.action name="_PSC9oeXIEd-el7FusQO1eQ" org.eventb.core.assignment="cardInAtm ≔ ∅" org.eventb.core.label="act7"/>
<org.eventb.core.action name="_PSDksOXIEd-el7FusQO1eQ" org.eventb.core.assignment="cardAcct ≔ ∅" org.eventb.core.label="act8"/>
<org.eventb.core.action name="_lStmcPZFEd-O8eDjmTF4AA" org.eventb.core.assignment="trans ≔  ∅" org.eventb.core.label="act12"/>
<org.eventb.core.action name="_lSuNgPZFEd-O8eDjmTF4AA" org.eventb.core.assignment="atmDepAm ≔ ∅" org.eventb.core.label="act14"/>
<org.eventb.core.action name="_MsuZEPZOEd-O8eDjmTF4AA" org.eventb.core.assignment="processedDep ≔ ∅" org.eventb.core.label="act15"/>
<org.eventb.core.action name="_NL-qcPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="sendReqDep ≔ ∅" org.eventb.core.label="act17"/>
<org.eventb.core.action name="_NL_RgPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="recvReqDep ≔ ∅" org.eventb.core.label="act18"/>
<org.eventb.core.action name="_NL_4kPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="sendRespDep ≔ ∅" org.eventb.core.label="act19"/>
<org.eventb.core.action name="_NL_4kfZaEd-O8eDjmTF4AA" org.eventb.core.assignment="recvRespDep ≔ ∅" org.eventb.core.label="act20"/>
<org.eventb.core.action name="_Yc-T8PcSEd-VE9yXNFfzhQ" org.eventb.core.assignment="atmCashA ≔ ATM × {0}" org.eventb.core.label="act21"/>
</org.eventb.core.event>
<org.eventb.core.event name="_NMAfoPZaEd-O8eDjmTF4AA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="sendReqDeposit">
<org.eventb.core.refinesEvent name="_VxIc8A0EEeCDh_sKUTn4vw" org.eventb.core.target="reqDeposit"/>
<org.eventb.core.parameter name="_NMBGsfZaEd-O8eDjmTF4AA" org.eventb.core.identifier="c"/>
<org.eventb.core.parameter name="_NMBtwPZaEd-O8eDjmTF4AA" org.eventb.core.identifier="am"/>
<org.eventb.core.parameter name="_NMBtwfZaEd-O8eDjmTF4AA" org.eventb.core.identifier="a"/>
<org.eventb.core.guard name="_NMCU0PZaEd-O8eDjmTF4AA" org.eventb.core.label="grd2" org.eventb.core.predicate="am ∈ ℕ1"/>
<org.eventb.core.guard name="_NMCU0fZaEd-O8eDjmTF4AA" org.eventb.core.label="grd3" org.eventb.core.predicate="c ∈ ran(cardInAtm)"/>
<org.eventb.core.guard name="_NMC74PZaEd-O8eDjmTF4AA" org.eventb.core.label="grd4" org.eventb.core.predicate="a ∈ dom(cardInAtm)"/>
<org.eventb.core.guard name="_NMDi8PZaEd-O8eDjmTF4AA" org.eventb.core.label="grd5" org.eventb.core.predicate="cardInAtm(a) = c"/>
<org.eventb.core.guard name="_NMEKAPZaEd-O8eDjmTF4AA" org.eventb.core.label="grd6" org.eventb.core.predicate="c ∈ validCard"/>
<org.eventb.core.guard name="_NMFYIPZaEd-O8eDjmTF4AA" org.eventb.core.label="grd9" org.eventb.core.predicate="a ∉ trans"/>
<org.eventb.core.action name="_NMF_MPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="trans ≔ trans ∪ {a}" org.eventb.core.label="act2"/>
<org.eventb.core.action name="_NMF_MfZaEd-O8eDjmTF4AA" org.eventb.core.assignment="atmDepAm(a) ≔ am" org.eventb.core.label="act3"/>
<org.eventb.core.action name="_NMGmQPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="sendReqDep ≔ sendReqDep ∪ {a}" org.eventb.core.label="act4"/>
</org.eventb.core.event>
<org.eventb.core.event name="_lTBvgPZFEd-O8eDjmTF4AA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="recvReqDeposit">
<org.eventb.core.parameter name="_lTC9ofZFEd-O8eDjmTF4AA" org.eventb.core.identifier="a"/>
<org.eventb.core.guard name="_lTH2IfZFEd-O8eDjmTF4AA" org.eventb.core.label="grd1" org.eventb.core.predicate="a ∈ sendReqDep"/>
<org.eventb.core.action name="_lTIdMPZFEd-O8eDjmTF4AA" org.eventb.core.assignment="recvReqDep ≔ recvReqDep ∪ {a}" org.eventb.core.label="act1"/>
<org.eventb.core.action name="_lTJEQPZFEd-O8eDjmTF4AA" org.eventb.core.assignment="sendReqDep ≔ sendReqDep ∖ {a}" org.eventb.core.label="act2"/>
</org.eventb.core.event>
<org.eventb.core.event name="_MX3VcYXWEd-IWucizL2C3A" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="depositB">
<org.eventb.core.refinesEvent name="_VxSN8A0EEeCDh_sKUTn4vw" org.eventb.core.target="depositB"/>
<org.eventb.core.parameter name="'" org.eventb.core.identifier="acc"/>
<org.eventb.core.parameter name="(" org.eventb.core.identifier="am"/>
<org.eventb.core.parameter name=")" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="*" org.eventb.core.label="grd1" org.eventb.core.predicate="acc ∈ ACCOUNT"/>
<org.eventb.core.guard name="+" org.eventb.core.label="grd2" org.eventb.core.predicate="acc ∈ dom(bal)"/>
<org.eventb.core.guard name="," org.eventb.core.label="grd3" org.eventb.core.predicate="am ∈ ℕ1"/>
<org.eventb.core.guard name="." org.eventb.core.label="grd5" org.eventb.core.predicate="c ↦ acc ∈ cardAcct"/>
<org.eventb.core.action name="/" org.eventb.core.assignment="bal(acc) ≔ bal(acc) + am" org.eventb.core.label="act1"/>
<org.eventb.core.action name="(" org.eventb.core.assignment="atmCash(a) ≔ atmCash(a) + am" org.eventb.core.label="act2"/>
<org.eventb.core.guard name=")" org.eventb.core.label="grd6" org.eventb.core.predicate="a ∈ ATM"/>
<org.eventb.core.guard name="internal1" org.eventb.core.label="grd7" org.eventb.core.predicate="a ∈ dom(atmCash)"/>
<org.eventb.core.parameter name="*" org.eventb.core.identifier="a"/>
<org.eventb.core.guard name="internal2" org.eventb.core.label="grd8" org.eventb.core.predicate="a ∈ dom(cardInAtm)"/>
<org.eventb.core.guard name="internal3" org.eventb.core.label="grd9" org.eventb.core.predicate="cardInAtm(a) = c"/>
<org.eventb.core.guard name="internal4" org.eventb.core.label="grd11" org.eventb.core.predicate="a ∈ dom(atmDepAm)"/>
<org.eventb.core.guard name="_Ms5_QPZOEd-O8eDjmTF4AA" org.eventb.core.label="grd12" org.eventb.core.predicate="atmDepAm(a) = am"/>
<org.eventb.core.action name="_p0Lo8evxEd-V6twkc9HfSw" org.eventb.core.assignment="processedDep ≔ processedDep ∪ {a}" org.eventb.core.label="act5"/>
<org.eventb.core.guard name="_Ms6mUPZOEd-O8eDjmTF4AA" org.eventb.core.label="grd13" org.eventb.core.predicate="a ∈ recvReqDep"/>
</org.eventb.core.event>
<org.eventb.core.event name="_NMUosfZaEd-O8eDjmTF4AA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="sendRespDeposit">
<org.eventb.core.refinesEvent name="_Vxb-8A0EEeCDh_sKUTn4vw" org.eventb.core.target="respDeposit"/>
<org.eventb.core.parameter name="_NMV20vZaEd-O8eDjmTF4AA" org.eventb.core.identifier="a"/>
<org.eventb.core.guard name="_NMWd4PZaEd-O8eDjmTF4AA" org.eventb.core.label="grd1" org.eventb.core.predicate="a ∈ processedDep"/>
<org.eventb.core.action name="_NMaIQPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="processedDep ≔ processedDep ∖ {a}" org.eventb.core.label="act2"/>
<org.eventb.core.action name="_NMavUPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="sendRespDep ≔ sendRespDep ∪ {a}" org.eventb.core.label="act3"/>
<org.eventb.core.guard name="_Vxb-8A0EEeCDh_sKUTn4vx" org.eventb.core.label="grd2" org.eventb.core.predicate="a ∈ recvReqDep"/>
<org.eventb.core.action name="_Vxb-8A0EEeCDh_sKUTn4vy" org.eventb.core.assignment="recvReqDep ≔ recvReqDep ∖ {a}" org.eventb.core.label="act4"/>
</org.eventb.core.event>
<org.eventb.core.event name="_Ms9CkPZOEd-O8eDjmTF4AA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="recvRespDeposit">
<org.eventb.core.parameter name="_Ms-QsfZOEd-O8eDjmTF4AA" org.eventb.core.identifier="a"/>
<org.eventb.core.guard name="_Ms-QsvZOEd-O8eDjmTF4AA" org.eventb.core.label="grd1" org.eventb.core.predicate="a ∈ sendRespDep"/>
<org.eventb.core.action name="_MtB7EfZOEd-O8eDjmTF4AA" org.eventb.core.assignment="recvRespDep ≔ recvRespDep ∪ {a}" org.eventb.core.label="act4"/>
<org.eventb.core.action name="_NMgO4PZaEd-O8eDjmTF4AA" org.eventb.core.assignment="sendRespDep ≔ sendRespDep ∖ {a}" org.eventb.core.label="act5"/>
</org.eventb.core.event>
<org.eventb.core.event name="_MtDJMPZOEd-O8eDjmTF4AA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="depositATM">
<org.eventb.core.refinesEvent name="_VxlI4A0EEeCDh_sKUTn4vw" org.eventb.core.target="depositATM"/>
<org.eventb.core.guard name="_VxlI4A0EEeCDh_sKUTn4w," org.eventb.core.label="grd9" org.eventb.core.predicate="a ∈ dom (atmDepAm)"/>
<org.eventb.core.guard name="_VxlI4A0EEeCDh_sKUTn4w-" org.eventb.core.label="grd10" org.eventb.core.predicate="atmDepAm(a) = am"/>
<org.eventb.core.guard name="_NMm8kPZaEd-O8eDjmTF4AA" org.eventb.core.label="grd12" org.eventb.core.predicate="a ∈ recvRespDep"/>
<org.eventb.core.action name="_VxlI4A0EEeCDh_sKUTn4w." org.eventb.core.assignment="atmCashA(a) ≔ atmCashA(a) + am" org.eventb.core.label="act2"/>
<org.eventb.core.action name="_VxlI4A0EEeCDh_sKUTn4w0" org.eventb.core.assignment="trans ≔ trans ∖ {a}" org.eventb.core.label="act5"/>
<org.eventb.core.action name="_NMnjoPZaEd-O8eDjmTF4AA" org.eventb.core.assignment="recvRespDep ≔ recvRespDep ∖ {a}" org.eventb.core.label="act6"/>
<org.eventb.core.parameter name="_VxlI4A0EEeCDh_sKUTn4vy" org.eventb.core.identifier="am"/>
<org.eventb.core.parameter name="_VxlI4A0EEeCDh_sKUTn4v{" org.eventb.core.identifier="a"/>
</org.eventb.core.event>
<org.eventb.core.event ch.ethz.eventb.decomposition.external="true" name="1" org.eventb.core.comment="External event, DO NOT REFINE" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="Transfer">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="Transfer"/>
<org.eventb.core.parameter name="(" org.eventb.core.identifier="src_ac"/>
<org.eventb.core.parameter name=")" org.eventb.core.identifier="dest_ac"/>
<org.eventb.core.parameter name="*" org.eventb.core.identifier="am"/>
<org.eventb.core.parameter name="+" org.eventb.core.identifier="c"/>
<org.eventb.core.guard name="," org.eventb.core.label="grd1" org.eventb.core.predicate="src_ac ∈ ACCOUNT"/>
<org.eventb.core.guard name="-" org.eventb.core.label="grd2" org.eventb.core.predicate="dest_ac ∈ ACCOUNT"/>
<org.eventb.core.guard name="." org.eventb.core.label="grd3" org.eventb.core.predicate="c ∈ validCard"/>
<org.eventb.core.guard name="/" org.eventb.core.label="grd4" org.eventb.core.predicate="c ↦ src_ac ∈ cardAcct"/>
<org.eventb.core.guard name="0" org.eventb.core.label="grd5" org.eventb.core.predicate="am ∈ ℕ1"/>
<org.eventb.core.guard name="1" org.eventb.core.label="grd6" org.eventb.core.predicate="src_ac ∈ dom(bal)"/>
<org.eventb.core.guard name="2" org.eventb.core.label="grd7" org.eventb.core.predicate="dest_ac ∈ dom(bal)"/>
<org.eventb.core.guard name="3" org.eventb.core.label="grd8" org.eventb.core.predicate="src_ac ≠ dest_ac"/>
<org.eventb.core.guard name="4" org.eventb.core.label="grd9" org.eventb.core.predicate="am &lt; bal(src_ac)"/>
<org.eventb.core.action name="5" org.eventb.core.assignment="bal ≔  bal  {dest_ac ↦ (bal(dest_ac) + am), src_ac ↦(bal(src_ac) − am)}" org.eventb.core.label="act1"/>
</org.eventb.core.event>
</org.eventb.core.machineFile>
