<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="INITIALISATION/Withdraw_4_inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM×CARD))∈ATM ⇸ CARD"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/Withdraw_4_inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM×ℤ))∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqWithdraw/Withdraw_4_inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p3,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="am" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="c" org.eventb.core.type="CARD"/>
<org.eventb.core.prIdent name="cardInAtmM" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="atmWDAmM∈ℙ(ATM × ℤ)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="cardInAtmM{a ↦ c}∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c∈CARD"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="acc∈ACCOUNT">
<org.eventb.core.prIdent name="ACCOUNT" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.prIdent name="acc" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="cardInAtmM∈ℙ(ATM × CARD)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendReqWD∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqWD" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqWithdraw/Withdraw_4_inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2,p3,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="am" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="cardInAtmM" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="atmWDAmM∈ℙ(ATM × ℤ)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="c∈CARD">
<org.eventb.core.prIdent name="c" org.eventb.core.type="CARD"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="acc∈ACCOUNT">
<org.eventb.core.prIdent name="ACCOUNT" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.prIdent name="acc" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="cardInAtmM∈ℙ(ATM × CARD)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="atmWDAmM{a ↦ am}∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendReqWD∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqWD" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqWD/grd5/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p4">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧atmWDAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈dom(atmWDAmM)∧atmWDAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespWDOk/Withdraw_4_inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p4,p1,p5,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="cardInAtmM" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="atmWDAmM∈ℙ(ATM × ℤ)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ℙ(ATM × CARD)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈sendRespWDOk"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendReqWD∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqWD" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespWDOk/Withdraw_4_inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p4,p1,p5,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="cardInAtmM" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="atmWDAmM∈ℙ(ATM × ℤ)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ℙ(ATM × CARD)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈sendRespWDOk"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendReqWD∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqWD" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespWDFail/Withdraw_4_inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p4,p1,p5,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="cardInAtmM" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="atmWDAmM∈ℙ(ATM × ℤ)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ℙ(ATM × CARD)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈sendRespWDFail"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendReqWD∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqWD" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespWDFail/Withdraw_4_inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5" org.eventb.core.prSets="ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p4,p1,p5,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="atmWDAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="cardInAtmM" org.eventb.core.type="ℙ(ATM×CARD)"/>
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="atmWDAmM∈ℙ(ATM × ℤ)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ℙ(ATM × CARD)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈sendRespWDFail"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendReqWD∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqWD" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>
