<?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.poPredicateSet>
<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="1">
<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.poPredicateSet>
<org.eventb.core.poSequent name="INITIALISATION/IntegralATM_0_inv1/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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CV"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(ACCOUNT×ℤ))∈ACCOUNT ⇸ ℕ" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#0"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poSequent#INITIALISATION\/IntegralATM_0_inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="INITIALISATION/IntegralATM_0_inv2/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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CV"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(CARD×ACCOUNT))∈CARD ⇸ ACCOUNT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#."/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#0"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#."/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poSequent#INITIALISATION\/IntegralATM_0_inv2\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD4"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTDeposit_CV" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|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="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="EVTALLHYPDeposit_CV" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTIDENTDeposit_CV" org.eventb.core.poStamp="1"/>
<org.eventb.core.poSequent name="Transfer/grd9/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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTHYPDeposit_CW."/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="src_ac∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#1|org.eventb.core.guard#3"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#1|org.eventb.core.guard#3"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTHYPDeposit_CW."/>
</org.eventb.core.poSequent>
<org.eventb.core.poSequent name="Transfer/IntegralATM_0_inv1/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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CW"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="bal{dest_ac ↦ bal(dest_ac)+am,src_ac ↦ bal(src_ac) − am}∈ACCOUNT ⇸ ℕ" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#1"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poSequent#Transfer\/IntegralATM_0_inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CW"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dest_ac∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ∧src_ac∈dom(bal)" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#1|org.eventb.core.action#4"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CW"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTDeposit_CW" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|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="EVTHYPDeposit_CW." org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTIDENTDeposit_CW" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="src_ac∈ACCOUNT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#1|org.eventb.core.guard#2"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="EVTALLHYPDeposit_CW" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTHYPDeposit_CW." org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD8" org.eventb.core.predicate="am&lt;bal(src_ac)" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#1|org.eventb.core.guard#3"/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poSequent name="Deposit/IntegralATM_0_inv1/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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CX"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="bal{acc ↦ bal(acc)+am}∈ACCOUNT ⇸ ℕ" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#2"/>
<org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poSequent#Deposit\/IntegralATM_0_inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
<org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/>
</org.eventb.core.poSequent>
<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="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CX"/>
<org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="acc∈dom(bal)∧bal∈ACCOUNT ⇸ ℤ" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#2|org.eventb.core.action#\/"/>
<org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTALLHYPDeposit_CX"/>
</org.eventb.core.poSequent>
<org.eventb.core.poPredicateSet name="EVTIDENTDeposit_CX" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|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="EVTALLHYPDeposit_CX" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#EVTIDENTDeposit_CX" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="acc∈ACCOUNT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_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="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.event#2|org.eventb.core.guard#."/>
</org.eventb.core.poPredicateSet>
<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/Deposit/Deposit_0.bpo|org.eventb.core.poFile#Deposit_0|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="1">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="bal∈ℙ(ACCOUNT × ℤ)" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#*"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="validCard∈ℙ(CARD)" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#+"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="cardAcct∈ℙ(CARD × ACCOUNT)" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#,"/>
<org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="bal∈ACCOUNT ⇸ ℕ" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#-"/>
<org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="cardAcct∈CARD ⇸ ACCOUNT" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#."/>
<org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="validCard⊆CARD" org.eventb.core.source="/Deposit/Deposit_0.bum|org.eventb.core.machineFile#Deposit_0|org.eventb.core.invariant#\/"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
