<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="INITIALISATION/MW_W.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/MW_W.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="INITIALISATION/mMW_T.BalTransfer_4_inv3/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 ⇸ ℕ1"/>
<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/mMW_T.BalTransfer_4_inv21/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="ACCOUNT,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×ACCOUNT))∈ATM ⇸ ACCOUNT"/>
<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/mMW_T.BalTransfer_4_inv22/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="ACCOUNT,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×ACCOUNT))∈ATM ⇸ ACCOUNT"/>
<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/mMW_D.Deposit_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/MW_W.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,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p19"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<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.prIdent name="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" 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="p17" org.eventb.core.predicate="acc∈ACCOUNT">
<org.eventb.core.prIdent name="acc" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="c∈CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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/MW_W.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,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p19"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="acc∈ACCOUNT">
<org.eventb.core.prIdent name="acc" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" 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="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="atmWDAmM{a ↦ am}∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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/MW_W.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.psManual="true">
<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="p3"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p11">
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p11" 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="p8" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p5" 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="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" 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="p6" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p3" 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="p7" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespWDOk/MW_W.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,p6,p7,p8,p9" org.eventb.core.prSets="ACCOUNT,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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<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="p6,p8,p2,p3,p5,p7,p1,p4,p9">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈sendRespWDOk"/>
<org.eventb.core.prPred name="p11" 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="sendRespWDOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<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/MW_W.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,p6,p7,p8,p9" org.eventb.core.prSets="ACCOUNT,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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<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="p6,p8,p2,p3,p5,p7,p1,p4,p9">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈sendRespWDOk"/>
<org.eventb.core.prPred name="p11" 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="p0" org.eventb.core.predicate="{a} ⩤ atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendRespWDOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<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/MW_W.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,p6,p7,p8,p9" org.eventb.core.prSets="ACCOUNT,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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<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="p6,p8,p1,p2,p5,p7,p4,p3,p9">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈sendRespWDFail"/>
<org.eventb.core.prPred name="p11" 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="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<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/MW_W.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,p6,p7,p8,p9" org.eventb.core.prSets="ACCOUNT,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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<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="p6,p8,p1,p2,p5,p7,p4,p3,p9">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespWDFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="a∈dom(atmWDAmM)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespWDFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈sendRespWDFail"/>
<org.eventb.core.prPred name="p11" 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="p0" org.eventb.core.predicate="{a} ⩤ atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p10" 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="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<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="SendReqTransfer/MW_W.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,p6,p7,p8" org.eventb.core.prSets="ACCOUNT,ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="r1" 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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p20"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p21"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p8,p2,p1,p5,p6,p3,p9">
<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.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="atmDepAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<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.prIdent name="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" 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="p19" org.eventb.core.predicate="c∈CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="src_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬src_ac=dest_ac"/>
<org.eventb.core.prPred name="p11" 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="p4" org.eventb.core.predicate="src_ac≠dest_ac"/>
<org.eventb.core.prPred name="p10" 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="p22" org.eventb.core.predicate="dest_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/mMW_T.BalTransfer_4_inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8" org.eventb.core.prSets="ACCOUNT,ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="r1" 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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p20"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p21"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p8,p2,p1,p5,p6,p3,p9">
<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.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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" 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="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="src_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬src_ac=dest_ac"/>
<org.eventb.core.prPred name="p11" 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="p4" org.eventb.core.predicate="src_ac≠dest_ac"/>
<org.eventb.core.prPred name="p10" 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="trAmountM{a ↦ am}∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="dest_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/mMW_T.BalTransfer_4_inv21/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8" org.eventb.core.prSets="ACCOUNT,ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="r1" 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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p20"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p21"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p8,p2,p1,p5,p6,p3,p9">
<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.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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" 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="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="src_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬src_ac=dest_ac"/>
<org.eventb.core.prPred name="p11" 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="p4" org.eventb.core.predicate="src_ac≠dest_ac"/>
<org.eventb.core.prPred name="p10" 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="p22" org.eventb.core.predicate="dest_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="srcAccM{a ↦ src_ac}∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/mMW_T.BalTransfer_4_inv22/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8" org.eventb.core.prSets="ACCOUNT,ATM,CARD">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="r1" 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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p20"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p21"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p8,p2,p1,p5,p6,p3,p9">
<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.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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" 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="p0" org.eventb.core.predicate="destAccM{a ↦ dest_ac}∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="src_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬src_ac=dest_ac"/>
<org.eventb.core.prPred name="p11" 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="p4" org.eventb.core.predicate="src_ac≠dest_ac"/>
<org.eventb.core.prPred name="p10" 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="p22" org.eventb.core.predicate="dest_ac∈ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqTransfer/mMW_T.RecvReqTransfer.grd3/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.psManual="true">
<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="p3"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p16">
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p16" 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="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈dom(trAmountM)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈dom(trAmountM)∧trAmountM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" 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="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="c∈CARD">
<org.eventb.core.prIdent name="CARD" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.prIdent name="c" org.eventb.core.type="CARD"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="src_ac∈ACCOUNT">
<org.eventb.core.prIdent name="ACCOUNT" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="am∈ℤ">
<org.eventb.core.prIdent name="am" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" 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="p3" 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="p14" org.eventb.core.predicate="dest_ac∈ACCOUNT">
<org.eventb.core.prIdent name="ACCOUNT" org.eventb.core.type="ℙ(ACCOUNT)"/>
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqTransfer/mMW_T.RecvReqTransfer.grd7/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="ACCOUNT,ATM" org.eventb.core.psManual="true">
<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="p2">
<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="p1">
<org.eventb.core.prRule name="r2" 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.prHypAction name="HIDE9" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈dom(destAccM)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" 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="p10" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈dom(destAccM)∧destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c∈CARD">
<org.eventb.core.prIdent name="CARD" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.prIdent name="c" org.eventb.core.type="CARD"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="src_ac∈ACCOUNT">
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈dom(destAccM)∧⊤"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="am∈ℤ">
<org.eventb.core.prIdent name="am" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" 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="p4" 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="p15" org.eventb.core.predicate="dest_ac∈ACCOUNT">
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqTransfer/mMW_T.RecvReqTransfer.grd6/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="ACCOUNT,ATM" org.eventb.core.psManual="true">
<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="p2">
<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="p1">
<org.eventb.core.prRule name="r2" 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.prHypAction name="HIDE9" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE11" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE12" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</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="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" 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="p10" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈dom(srcAccM)∧srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="c∈CARD">
<org.eventb.core.prIdent name="CARD" org.eventb.core.type="ℙ(CARD)"/>
<org.eventb.core.prIdent name="c" org.eventb.core.type="CARD"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="src_ac∈ACCOUNT">
<org.eventb.core.prIdent name="src_ac" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈dom(srcAccM)∧⊤"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈dom(srcAccM)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="am∈ℤ">
<org.eventb.core.prIdent name="am" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" 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="p4" 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="p15" org.eventb.core.predicate="dest_ac∈ACCOUNT">
<org.eventb.core.prIdent name="dest_ac" org.eventb.core.type="ACCOUNT"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.hyp"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferOk/MW_W.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,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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="RecvRespTransferOk/mMW_T.BalTransfer_4_inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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="RecvRespTransferOk/mMW_T.BalTransfer_4_inv21/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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="RecvRespTransferOk/mMW_T.BalTransfer_4_inv22/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p9" 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="p8" 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} ⩤ destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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="RecvRespTransferFail/MW_W.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,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p4,p6,p1,p2,p3,p5,p7">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<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="RecvRespTransferFail/mMW_T.BalTransfer_4_inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p4,p6,p1,p2,p3,p5,p7">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<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="RecvRespTransferFail/mMW_T.BalTransfer_4_inv21/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p4,p6,p1,p2,p3,p5,p7">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" 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="p8" 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="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<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="RecvRespTransferFail/mMW_T.BalTransfer_4_inv22/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<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="p4,p6,p1,p2,p3,p5,p7">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" 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="p8" 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} ⩤ destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<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="sendReqDeposit/MW_W.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,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p18"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<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.prIdent name="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" 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="p16" org.eventb.core.predicate="c∈CARD"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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="sendReqDeposit/mMW_D.Deposit_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,p6,p7" org.eventb.core.prSets="ACCOUNT,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="p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE9" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE10" org.eventb.core.prHyps="p18"/>
<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="p5,p7,p1,p2,p4,p6,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<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="p14" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" 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="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="atmDepAmM{a ↦ am}∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="am∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p9" 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="p8" 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="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" 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="recvReqDeposit/mMW_D.recvReqDeposit.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="atmDepAmM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="a∈dom(atmDepAmM)"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="⊤∧atmDepAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈dom(atmDepAmM)∧atmDepAmM∈ATM ⇸ ℤ"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<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.prProof>
<org.eventb.core.prProof name="recvRespDeposit/MW_W.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,p6,p7,p8,p9" org.eventb.core.prSets="ACCOUNT,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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<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="p5,p8,p1,p2,p4,p6,p7,p9,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈dom(atmDepAmM)"/>
<org.eventb.core.prPred name="p11" 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="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespDep"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<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="recvRespDeposit/mMW_D.Deposit_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,p6,p7,p8,p9" org.eventb.core.prSets="ACCOUNT,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="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE4" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="HIDE5" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE6" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="HIDE7" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="HIDE8" org.eventb.core.prHyps="p18"/>
<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="p5,p8,p1,p2,p4,p6,p7,p9,p3">
<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="atmDepAmM" 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="destAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="sendRespDep" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="srcAccM" org.eventb.core.type="ℙ(ATM×ACCOUNT)"/>
<org.eventb.core.prIdent name="trAmountM" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="trAmountM∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="srcAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendReqDep∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendReqDep" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" 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="p16" org.eventb.core.predicate="sendRespDep∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="{a} ⩤ atmDepAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="a∈dom(atmDepAmM)"/>
<org.eventb.core.prPred name="p11" 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="sendRespWDOk∈ℙ(ATM)">
<org.eventb.core.prIdent name="sendRespWDOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="destAccM∈ATM ⇸ ACCOUNT"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="cardInAtmM∈ATM ⇸ CARD"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespDep"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="atmWDAmM∈ATM ⇸ ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="a∈dom(cardInAtmM)"/>
<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>
