<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd">
<org.eventb.core.scRefinesMachine name="'" org.eventb.core.scTarget="/Withdraw/Withdraw_0.bcm" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.refinesMachine#_h_cgsI1oEeCql_Cw8lZNHQ"/>
<org.eventb.core.scSeesContext name="(" org.eventb.core.scTarget="/Withdraw/Withdraw_CO1.bcc" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.seesContext#_h_dHwI1oEeCql_Cw8lZNHQ"/>
<org.eventb.core.scInternalContext name="Withdraw_CO">
<org.eventb.core.scCarrierSet name="ACCOUNT" org.eventb.core.source="/Withdraw/Withdraw_CO.buc|org.eventb.core.contextFile#Withdraw_CO|org.eventb.core.carrierSet#'" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.scCarrierSet name="CARD" org.eventb.core.source="/Withdraw/Withdraw_CO.buc|org.eventb.core.contextFile#Withdraw_CO|org.eventb.core.carrierSet#(" org.eventb.core.type="ℙ(CARD)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInternalContext name="Withdraw_CO1">
<org.eventb.core.scExtendsContext name="'" org.eventb.core.scTarget="/Withdraw/Withdraw_CO.bcc|org.eventb.core.scContextFile#Withdraw_CO" org.eventb.core.source="/Withdraw/Withdraw_CO1.buc|org.eventb.core.contextFile#Withdraw_CO1|org.eventb.core.extendsContext#_hW4yMFOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.scCarrierSet name="ATM" org.eventb.core.source="/Withdraw/Withdraw_CO1.buc|org.eventb.core.contextFile#Withdraw_CO1|org.eventb.core.carrierSet#_hW4yMlOcEeCu5ZBiYa8OYg" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="Withdraw_CP" org.eventb.core.label="typing_bal" org.eventb.core.predicate="bal∈ℙ(ACCOUNT × ℤ)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.invariant#*" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Withdraw_CQ" org.eventb.core.label="typing_validCard" org.eventb.core.predicate="validCard∈ℙ(CARD)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.invariant#+" org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Withdraw_CR" org.eventb.core.label="typing_cardAcct" org.eventb.core.predicate="cardAcct∈ℙ(CARD × ACCOUNT)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.invariant#," org.eventb.core.theorem="true"/>
<org.eventb.core.scInvariant name="Withdraw_CS" org.eventb.core.label="IntegralATM_0_inv1" org.eventb.core.predicate="bal∈ACCOUNT ⇸ ℕ" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.invariant#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Withdraw_CT" org.eventb.core.label="IntegralATM_0_inv2" org.eventb.core.predicate="cardAcct∈CARD ⇸ ACCOUNT" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.invariant#." org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Withdraw_CU" org.eventb.core.label="IntegralATM_0_inv4" org.eventb.core.predicate="validCard⊆CARD" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.invariant#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Withdraw_CO2" org.eventb.core.label="inv3" org.eventb.core.predicate="atmCash∈ATM → ℕ" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi3SglOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Withdraw_CO3" org.eventb.core.label="inv4" org.eventb.core.predicate="withdrawOkA∈ℙ(ATM)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi2rdFOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="Withdraw_CO4" org.eventb.core.label="inv5" org.eventb.core.predicate="withdrawFailA∈ℙ(ATM)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi3SgVOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="atmCash" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.variable#_Oi2EY1OcEeCu5ZBiYa8OYg" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.scVariable name="bal" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.variable#_T_koQVObEeCu5ZBiYa8OYg" org.eventb.core.type="ℙ(ACCOUNT×ℤ)"/>
<org.eventb.core.scVariable name="cardAcct" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.variable#_r7vYsYfsEeCsjdVPpjFWxh" org.eventb.core.type="ℙ(CARD×ACCOUNT)"/>
<org.eventb.core.scVariable name="validCard" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.variable#_r7vYsYfsEeCsjdVPpjFWxi" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.scVariable name="withdrawFailA" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.variable#_r7vYsYfsEeCsjdVPpjFWxg" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.scVariable name="withdrawOkA" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.variable#_r7vYsIfsEeCsjdVPpjFWxg" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.scEvent name="withdrawFailB" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#'">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/Withdraw/Withdraw_0.bcm|org.eventb.core.scMachineFile#Withdraw_0|org.eventb.core.scEvent#Withdraw_CV" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#'"/>
<org.eventb.core.scAction name="'" org.eventb.core.assignment="bal ≔ ∅ ⦂ ℙ(ACCOUNT×ℤ)" org.eventb.core.label="act1" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#0|org.eventb.core.action#'"/>
<org.eventb.core.scAction name="(" org.eventb.core.assignment="cardAcct ≔ ∅ ⦂ ℙ(CARD×ACCOUNT)" org.eventb.core.label="act2" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#0|org.eventb.core.action#("/>
<org.eventb.core.scAction name=")" org.eventb.core.assignment="validCard ≔ ∅ ⦂ ℙ(CARD)" org.eventb.core.label="act4" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#0|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="*" org.eventb.core.assignment="atmCash ≔ ATM × {0}" org.eventb.core.label="act7" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#'|org.eventb.core.action#_I5IX8FOeEeCu5ZBiYa8OYg"/>
<org.eventb.core.scAction name="+" org.eventb.core.assignment="withdrawOkA ≔ ∅ ⦂ ℙ(ATM)" org.eventb.core.label="act5" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#'|org.eventb.core.action#_I5Hw4lOeEeCu5ZBiYa8OYg"/>
<org.eventb.core.scAction name="," org.eventb.core.assignment="withdrawFailA ≔ ∅ ⦂ ℙ(ATM)" org.eventb.core.label="act6" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#'|org.eventb.core.action#_I5Hw41OeEeCu5ZBiYa8OYg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="withdrawFailC" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="withdrawOK" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/Withdraw/Withdraw_0.bcm|org.eventb.core.scMachineFile#Withdraw_0|org.eventb.core.scEvent#Withdraw_CY" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.refinesEvent#_h_eV4I1oEeCql_Cw8lZNHQ"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="acc∈ACCOUNT" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi4go1OcEeCu5ZBiYa8OYg" 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="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi4gpFOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="acc∈dom(bal)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi4gpVOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="am≤bal(acc)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi5HsFOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="c∈validCard" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_h_eV4I1oEeCql_Cw8lZNHT" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="c ↦ acc∈cardAcct" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_h_eV4I1oEeCql_Cw8lZNHS" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="." org.eventb.core.label="grd7" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi5HsVOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="/" org.eventb.core.label="grd8" org.eventb.core.predicate="am≤atmCash(a)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_antvAFOdEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_Oi35k1OcEeCu5ZBiYa8OYg" org.eventb.core.type="ATM"/>
<org.eventb.core.scParameter name="acc" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_Oi4golOcEeCu5ZBiYa8OYg" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_Oi4goVOcEeCu5ZBiYa8OYg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_h_eV4I1oEeCql_Cw8lZNHR" org.eventb.core.type="CARD"/>
<org.eventb.core.scAction name="acd" org.eventb.core.assignment="bal ≔ bal{acc ↦ bal(acc) − am}" org.eventb.core.label="act1" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.action#_Oi6V0VOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.scAction name="ace" org.eventb.core.assignment="atmCash ≔ atmCash{a ↦ atmCash(a) − am}" org.eventb.core.label="act2" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.action#_Oi6V0lOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.scAction name="acf" org.eventb.core.assignment="withdrawOkA ≔ withdrawOkA∪{a}" org.eventb.core.label="act3" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg|org.eventb.core.action#_Oi6V01OcEeCu5ZBiYa8OYg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="withdrawFailD" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="withdrawFail" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg">
<org.eventb.core.scGuard name="'" org.eventb.core.label="grd1" org.eventb.core.predicate="acc∈ACCOUNT" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi7j8VOcEeCu5ZBiYa8OYg" 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="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi7j8FOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="grd3" org.eventb.core.predicate="acc∈dom(bal)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_anvkMlOdEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd4" org.eventb.core.predicate="am&gt;bal(acc)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_anvkM1OdEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd5" org.eventb.core.predicate="c∈validCard" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_anvkNFOdEeCu5ZBiYa8OYj" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="," org.eventb.core.label="grd6" org.eventb.core.predicate="c ↦ acc∈cardAcct" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_anvkNFOdEeCu5ZBiYa8OYi" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="-" org.eventb.core.label="grd7" org.eventb.core.predicate="a∈ATM" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_Oi7j8lOcEeCu5ZBiYa8OYg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="." org.eventb.core.label="grd8" org.eventb.core.predicate="am≤atmCash(a)" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.guard#_anvkNFOdEeCu5ZBiYa8OYh" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="a" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_Oi684VOcEeCu5ZBiYa8OYg" org.eventb.core.type="ATM"/>
<org.eventb.core.scParameter name="acc" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_Oi685FOcEeCu5ZBiYa8OYg" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_Oi6841OcEeCu5ZBiYa8OYg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.parameter#_anvkNFOdEeCu5ZBiYa8OYk" org.eventb.core.type="CARD"/>
<org.eventb.core.scAction name="acd" org.eventb.core.assignment="withdrawFailA ≔ withdrawFailA∪{a}" org.eventb.core.label="act2" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi684FOcEeCu5ZBiYa8OYg|org.eventb.core.action#_anvkNFOdEeCu5ZBiYa8OYg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="withdrawFailE" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="Deposit" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_T_mdc1ObEeCu5ZBiYa8OYg">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/Withdraw/Withdraw_0.bcm|org.eventb.core.scMachineFile#Withdraw_0|org.eventb.core.scEvent#Withdraw_CX" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_T_mdc1ObEeCu5ZBiYa8OYg|org.eventb.core.refinesEvent#_h_fkAI1oEeCql_Cw8lZNHQ"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="grd1" org.eventb.core.predicate="acc∈ACCOUNT" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.guard#*" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="grd2" org.eventb.core.predicate="acc∈dom(bal)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|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="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|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="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.guard#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="+" org.eventb.core.label="grd5" org.eventb.core.predicate="c ↦ acc∈cardAcct" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.guard#." org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="acd" org.eventb.core.assignment="bal ≔ bal{acc ↦ bal(acc)+am}" org.eventb.core.label="act1" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.action#\/"/>
<org.eventb.core.scParameter name="acc" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.parameter#'" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.parameter#(" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#2|org.eventb.core.parameter#)" org.eventb.core.type="CARD"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="withdrawFailF" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="Transfer" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_T_nrklObEeCu5ZBiYa8OYg">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/Withdraw/Withdraw_0.bcm|org.eventb.core.scMachineFile#Withdraw_0|org.eventb.core.scEvent#Withdraw_CW" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_T_nrklObEeCu5ZBiYa8OYg|org.eventb.core.refinesEvent#_h_gLEI1oEeCql_Cw8lZNHQ"/>
<org.eventb.core.scGuard name="'" org.eventb.core.label="grd1" org.eventb.core.predicate="src_ac∈ACCOUNT" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|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="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|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="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.guard#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="*" org.eventb.core.label="grd4" org.eventb.core.predicate="c ↦ src_ac∈cardAcct" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|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="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.guard#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="," org.eventb.core.label="grd6" org.eventb.core.predicate="src_ac∈dom(bal)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.guard#0" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="-" org.eventb.core.label="grd7" org.eventb.core.predicate="dest_ac∈dom(bal)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.guard#1" 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="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.guard#2" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="/" org.eventb.core.label="grd9" org.eventb.core.predicate="am&lt;bal(src_ac)" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.guard#3" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="dest_ad" 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.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.action#4"/>
<org.eventb.core.scParameter name="am" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.parameter#)" org.eventb.core.type="ℤ"/>
<org.eventb.core.scParameter name="c" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.parameter#*" org.eventb.core.type="CARD"/>
<org.eventb.core.scParameter name="dest_ac" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.parameter#(" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.scParameter name="src_ac" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#1|org.eventb.core.parameter#'" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
