<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="ch.ethz.eventb.decomposition.pogConfig">
<org.eventb.core.scSeesContext name="'" org.eventb.core.scTarget="/ATMproduct_TDW/Context_ATM_W.bcc" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.seesContext#I"/>
<org.eventb.core.scInternalContext name="Context_ATM_W">
<org.eventb.core.scCarrierSet name="ACCOUNT" org.eventb.core.source="/ATMproduct_TDW/Context_ATM_W.buc|org.eventb.core.contextFile#Context_ATM_W|org.eventb.core.carrierSet#)" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.scCarrierSet name="ATM" org.eventb.core.source="/ATMproduct_TDW/Context_ATM_W.buc|org.eventb.core.contextFile#Context_ATM_W|org.eventb.core.carrierSet#'" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.scCarrierSet name="CARD" org.eventb.core.source="/ATMproduct_TDW/Context_ATM_W.buc|org.eventb.core.contextFile#Context_ATM_W|org.eventb.core.carrierSet#(" org.eventb.core.type="ℙ(CARD)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="Context_ATM_X" org.eventb.core.label="typing_atmCashA" org.eventb.core.predicate="atmCashA∈ℙ(ATM × ℤ)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#0" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_Y" org.eventb.core.label="typing_atmWDAm" org.eventb.core.predicate="atmWDAm∈ℙ(ATM × ℤ)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#1" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_Z" org.eventb.core.label="typing_cardInAtm" org.eventb.core.predicate="cardInAtm∈ℙ(ATM × CARD)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#2" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_[" org.eventb.core.label="typing_trans" org.eventb.core.predicate="trans∈ℙ(ATM)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#3" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_\" org.eventb.core.label="typing_recvRespWDOk" org.eventb.core.predicate="recvRespWDOk∈ℙ(ATM)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#4" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_]" org.eventb.core.label="typing_recvRespWDFail" org.eventb.core.predicate="recvRespWDFail∈ℙ(ATM)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#5" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_^" org.eventb.core.label="typing_withdrawOkMsg" org.eventb.core.predicate="withdrawOkMsg∈ℙ(ATM × BOOL)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#6" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM__" org.eventb.core.label="typing_withdrawFailMsg" org.eventb.core.predicate="withdrawFailMsg∈ℙ(ATM × BOOL)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#7" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_`" org.eventb.core.label="typing_validCard" org.eventb.core.predicate="validCard∈ℙ(CARD)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#8" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Context_ATM_a" org.eventb.core.label="Withdraw_0_IntegralATM_0_inv4" org.eventb.core.predicate="validCard⊆CARD" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#9" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Context_ATM_b" org.eventb.core.label="Withdraw_2_inv9" org.eventb.core.predicate="atmWDAm∈ATM ⇸ ℕ" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#:" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Context_ATM_c" org.eventb.core.label="Withdraw_2_inv11" org.eventb.core.predicate="atmCashA∈ATM → ℕ" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#;" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Context_ATM_d" org.eventb.core.label="Withdraw_2_inv13" org.eventb.core.predicate="withdrawOkMsg∈ATM ⇸ BOOL" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#=" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Context_ATM_e" org.eventb.core.label="Withdraw_2_inv14" org.eventb.core.predicate="withdrawFailMsg∈ATM ⇸ BOOL" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#&gt;" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Context_ATM_f" org.eventb.core.label="Withdraw_2_inv21" org.eventb.core.predicate="cardInAtm∈ATM ⇸ CARD" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#?" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Context_ATM_g" org.eventb.core.label="Withdraw_2_inv22" org.eventb.core.predicate="∀c⦂CARD·c∈ran(cardInAtm)⇒c∈validCard" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.invariant#@" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="atmCashA" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#+" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="atmWDAm" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#)" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="cardInAtm" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#(" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="recvRespWDFail" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#\/" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="recvRespWDOk" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#." org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="trans" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#*" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="validCard" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#'" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="withdrawFailMsg" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#-" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.scVariable ch.ethz.eventb.decomposition.nature="0" name="withdrawOkMsg" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.variable#," org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsh" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A">
<org.eventb.core.scAction name="'" org.eventb.core.assignment="validCard ≔ ∅ ⦂ ℙ(CARD)" org.eventb.core.label="act2" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#'"/>
<org.eventb.core.scAction name="(" org.eventb.core.assignment="cardInAtm ≔ ∅ ⦂ ℙ(ATM×CARD)" org.eventb.core.label="act5" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#("/>
<org.eventb.core.scAction name=")" org.eventb.core.assignment="atmWDAm ≔ ∅ ⦂ ℙ(ATM×ℤ)" org.eventb.core.label="act12" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="*" org.eventb.core.assignment="trans ≔ ∅ ⦂ ℙ(ATM)" org.eventb.core.label="act13" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#*"/>
<org.eventb.core.scAction name="+" org.eventb.core.assignment="atmCashA ≔ ATM × {0}" org.eventb.core.label="act14" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#+"/>
<org.eventb.core.scAction name="," org.eventb.core.assignment="withdrawOkMsg ≔ ∅ ⦂ ℙ(ATM×BOOL)" org.eventb.core.label="act16" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#,"/>
<org.eventb.core.scAction name="-" org.eventb.core.assignment="withdrawFailMsg ≔ ∅ ⦂ ℙ(ATM×BOOL)" org.eventb.core.label="act17" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#-"/>
<org.eventb.core.scAction name="." org.eventb.core.assignment="recvRespWDOk ≔ ∅ ⦂ ℙ(ATM)" org.eventb.core.label="act23" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#."/>
<org.eventb.core.scAction name="/" org.eventb.core.assignment="recvRespWDFail ≔ ∅ ⦂ ℙ(ATM)" org.eventb.core.label="act25" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#A|org.eventb.core.action#\/"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsi" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="SendReqWithdraw" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_c" org.eventb.core.predicate="c∈CARD" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#3" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="typing_am" org.eventb.core.predicate="am∈ℤ" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#4" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="grd1" org.eventb.core.predicate="acc∈ACCOUNT" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#+" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd2" org.eventb.core.predicate="am∈ℕ1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd3" org.eventb.core.predicate="c∈validCard" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="," org.eventb.core.label="grd4" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#." org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="-" org.eventb.core.label="grd5" org.eventb.core.predicate="a ↦ c∈cardInAtm" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="." org.eventb.core.label="grd8" org.eventb.core.predicate="am≤atmCashA(a)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#0" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="/" org.eventb.core.label="grd7" org.eventb.core.predicate="a∉trans" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.guard#1" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.parameter#'" org.eventb.core.type="ATM"/>
<org.eventb.core.scParameter name="acc" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.parameter#*" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.parameter#)" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.parameter#(" org.eventb.core.type="CARD"/>
<org.eventb.core.scAction name="acd" org.eventb.core.assignment="atmWDAm ≔ atmWDAm{a ↦ am}" org.eventb.core.label="act2" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#B|org.eventb.core.action#2"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsj" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="RecvRespWDOk" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#C">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_a" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#C|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#C|org.eventb.core.parameter#'" org.eventb.core.type="ATM"/>
<org.eventb.core.scAction name="b" org.eventb.core.assignment="recvRespWDOk ≔ recvRespWDOk∪{a}" org.eventb.core.label="act1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#C|org.eventb.core.action#+"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsk" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="RecvRespWDFail" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#D">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_a" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#D|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#D|org.eventb.core.parameter#'" org.eventb.core.type="ATM"/>
<org.eventb.core.scAction name="b" org.eventb.core.assignment="recvRespWDFail ≔ recvRespWDFail∪{a}" org.eventb.core.label="act1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#D|org.eventb.core.action#+"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsl" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="withdrawOKAtm" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_am" org.eventb.core.predicate="am∈ℤ" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.guard#1" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="typing_a" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.guard#2" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="grd4" org.eventb.core.predicate="a∈dom(atmCashA)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.guard#)" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd10" org.eventb.core.predicate="am∈ℕ1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.guard#*" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd11" org.eventb.core.predicate="am≤atmCashA(a)" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.guard#+" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="," org.eventb.core.label="grd9" org.eventb.core.predicate="a∈recvRespWDOk" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.parameter#'" org.eventb.core.type="ATM"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.parameter#(" org.eventb.core.type="ℤ"/>
<org.eventb.core.scAction name="an" org.eventb.core.assignment="atmCashA ≔ atmCashA{a ↦ atmCashA(a) − am}" org.eventb.core.label="act1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.action#-"/>
<org.eventb.core.scAction name="ao" org.eventb.core.assignment="withdrawOkMsg ≔ withdrawOkMsg{a ↦ TRUE}" org.eventb.core.label="act3" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.action#."/>
<org.eventb.core.scAction name="ap" org.eventb.core.assignment="recvRespWDOk ≔ recvRespWDOk ∖ {a}" org.eventb.core.label="act4" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.action#\/"/>
<org.eventb.core.scAction name="aq" org.eventb.core.assignment="trans ≔ trans ∖ {a}" org.eventb.core.label="act5" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#E|org.eventb.core.action#0"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsm" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="withdrawFailsAtm" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_a" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="a∈recvRespWDFail" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F|org.eventb.core.guard#(" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F|org.eventb.core.parameter#'" org.eventb.core.type="ATM"/>
<org.eventb.core.scAction name="b" org.eventb.core.assignment="withdrawFailMsg ≔ withdrawFailMsg{a ↦ TRUE}" org.eventb.core.label="act1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="c" org.eventb.core.assignment="recvRespWDFail ≔ recvRespWDFail ∖ {a}" org.eventb.core.label="act2" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F|org.eventb.core.action#*"/>
<org.eventb.core.scAction name="d" org.eventb.core.assignment="trans ≔ trans ∖ {a}" org.eventb.core.label="act3" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#F|org.eventb.core.action#+"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMsn" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="Deposit" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_c" org.eventb.core.predicate="c∈CARD" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.guard#." org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="typing_am" org.eventb.core.predicate="am∈ℤ" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.guard#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="grd1" org.eventb.core.predicate="acc∈ACCOUNT" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.guard#*" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="am∈ℕ1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="c∈validCard" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.guard#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="acc" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.parameter#'" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.parameter#(" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#G|org.eventb.core.parameter#)" org.eventb.core.type="CARD"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent ch.ethz.eventb.decomposition.external="false" name="withdrawFailMso" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="Transfer" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H">
<org.eventb.core.scGuard name="'" org.eventb.core.label="typing_c" org.eventb.core.predicate="c∈CARD" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#3" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="typing_am" org.eventb.core.predicate="am∈ℤ" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#4" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="grd1" org.eventb.core.predicate="src_ac∈ACCOUNT" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#+" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd2" org.eventb.core.predicate="dest_ac∈ACCOUNT" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd3" org.eventb.core.predicate="c∈validCard" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="am∈ℕ1" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="-" org.eventb.core.label="grd8" org.eventb.core.predicate="src_ac≠dest_ac" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.guard#2" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.parameter#)" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.parameter#*" org.eventb.core.type="CARD"/>
<org.eventb.core.scParameter name="dest_ac" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.parameter#(" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="src_ac" org.eventb.core.source="/ATMproduct_TDW/ATM_W.bum|org.eventb.core.machineFile#ATM_W|org.eventb.core.event#H|org.eventb.core.parameter#'" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
