<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.poFile org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="CTXHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="ACCOUNT" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.poIdentifier name="CARD" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.poIdentifier name="ATM" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="atmCash" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.poIdentifier name="bal" org.eventb.core.type="ℙ(ACCOUNT×ℤ)"/>
<org.eventb.core.poIdentifier name="cardAcct" org.eventb.core.type="ℙ(CARD×ACCOUNT)"/>
<org.eventb.core.poIdentifier name="validCard" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.poIdentifier name="withdrawFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.poIdentifier name="withdrawOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.poPredicate name="withdrawFailB" 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.poPredicate name="withdrawFailC" 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.poPredicate name="withdrawFailD" 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.poPredicate name="withdrawFailE" 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.poPredicate name="withdrawFailF" 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.poPredicate name="withdrawFailG" 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.poPredicateSet>
<org.eventb.core.poSequent name="INITIALISATION/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant  establishment" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailB"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="ATM × {0}∈ATM → ℕ" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi3SglOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#0"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi3SglOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poSequent#INITIALISATION\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTwithdrawFailB" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="cardAcct'" org.eventb.core.type="ℙ(CARD×ACCOUNT)"/>
<org.eventb.core.poIdentifier name="atmCash'" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.poIdentifier name="withdrawOkA'" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.poIdentifier name="withdrawFailA'" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.poIdentifier name="bal'" org.eventb.core.type="ℙ(ACCOUNT×ℤ)"/>
<org.eventb.core.poIdentifier name="validCard'" org.eventb.core.type="ℙ(CARD)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPwithdrawFailB" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTIDENTwithdrawFailB" org.eventb.core.poStamp="1"/>
<org.eventb.core.poSequent name="withdrawOK/grd8/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailC."/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="a∈dom(atmCash)∧atmCash∈ATM ⇸ ℤ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailC."/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="withdrawOK/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant  preservation" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailC"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="atmCash{a ↦ atmCash(a) − am}∈ATM → ℕ" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi3SglOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/Withdraw/Withdraw_0.bum|org.eventb.core.machineFile#Withdraw_0|org.eventb.core.event#3"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.event#_Oi35kVOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Withdraw/Withdraw_1.bum|org.eventb.core.machineFile#Withdraw_1|org.eventb.core.invariant#_Oi3SglOcEeCu5ZBiYa8OYg"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poSequent#withdrawOK\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="withdrawOK/act1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of action" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailC"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="acc∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailC"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="withdrawOK/act2/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of action" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailC"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="a∈dom(atmCash)∧atmCash∈ATM ⇸ ℤ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailC"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTwithdrawFailC" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="acc" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.poIdentifier name="am" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="atmCash'" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.poIdentifier name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.poIdentifier name="withdrawOkA'" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="CARD"/>
<org.eventb.core.poIdentifier name="bal'" org.eventb.core.type="ℙ(ACCOUNT×ℤ)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTHYPwithdrawFailC." org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTIDENTwithdrawFailC" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicate name="PRD3" 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.poPredicate name="PRD4" 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.poPredicate name="PRD5" 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.poPredicate name="PRD6" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPwithdrawFailC" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailC." org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD7" 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.poPredicateSet>
<org.eventb.core.poSequent name="withdrawFail/grd4/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailD)"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="acc∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailD)"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="withdrawFail/grd8/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailD-"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="a∈dom(atmCash)∧atmCash∈ATM ⇸ ℤ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailD-"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTwithdrawFailD" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="acc" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.poIdentifier name="am" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="CARD"/>
<org.eventb.core.poIdentifier name="withdrawFailA'" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTHYPwithdrawFailD)" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTIDENTwithdrawFailD" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTHYPwithdrawFailD-" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailD)" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD3" 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.poPredicate name="PRD4" 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.poPredicate name="PRD5" 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.poPredicate name="PRD6" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPwithdrawFailD" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTHYPwithdrawFailD-" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD7" 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.poPredicateSet>
<org.eventb.core.poSequent name="Deposit/act1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of action" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailE"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="acc∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ" 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.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailE"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTwithdrawFailE" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="acc" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.poIdentifier name="am" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="CARD"/>
<org.eventb.core.poIdentifier name="bal'" org.eventb.core.type="ℙ(ACCOUNT×ℤ)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPwithdrawFailE" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTIDENTwithdrawFailE" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicate name="PRD3" 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.poPredicate name="PRD4" 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.poPredicateSet>
<org.eventb.core.poSequent name="Transfer/act1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of action" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailF"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dest_ac∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ∧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.action#4"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" 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.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTALLHYPwithdrawFailF"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTwithdrawFailF" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poIdentifier name="am" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="dest_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.poIdentifier name="src_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.poIdentifier name="c" org.eventb.core.type="CARD"/>
<org.eventb.core.poIdentifier name="bal'" org.eventb.core.type="ℙ(ACCOUNT×ℤ)"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPwithdrawFailF" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#EVTIDENTwithdrawFailF" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicate name="PRD3" 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.poPredicate name="PRD4" 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.poPredicate name="PRD5" 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.poPredicate name="PRD6" 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.poPredicate name="PRD7" 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.poPredicate name="PRD8" 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.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/Withdraw/Withdraw_1.bpo|org.eventb.core.poFile#Withdraw_1|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" 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.poPredicate name="PRD1" 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.poPredicate name="PRD2" 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.poPredicateSet>
</org.eventb.core.poFile>
