<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="INITIALISATION/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∈ℙ(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∈ℙ(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∈ℙ(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∈ℙ(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv5/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∈ℙ(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∈ℙ(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv7/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in 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="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p2" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<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="p2">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p2" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∩(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(∅ ⦂ ℙ(ATM),∅ ⦂ ℙ(ATM),∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))∪(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in 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="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p2" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<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="p2">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p2" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∩(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(∅ ⦂ ℙ(ATM),∅ ⦂ ℙ(ATM),∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))∪(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv9/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in 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="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p2" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<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="p2">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p2" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))∩(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(∅ ⦂ ℙ(ATM),∅ ⦂ ℙ(ATM),∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))∪(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/act14/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/act21/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM×BOOL))=(∅ ⦂ ℙ(ATM×BOOL))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/act24/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ATM))=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/inv1/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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p31,p32"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p31,p32"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p33,p34"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p33,p34"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p35,p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p35,p36"/>
<org.eventb.core.prRule name="r1" 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="p11" org.eventb.core.prInfHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p37" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p31">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF6" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT7" org.eventb.core.prHyps="p12,p20,p21,p22,p23,p24,p42"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p33">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p26,p28,p30,p44,p47,p49"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p61"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p62"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p27,p29,p48,p53,p54,p56"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p8,p17,p19,p3,p2,p14,p10,p12,p1,p4,p5,p13,p18,p15,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62">
<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.prAnte>
</org.eventb.core.prRule>
</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.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∉trans"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬a∈trans"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="¬a∈reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="sendReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendReqTransfer∪{a}∈ℙ(reqTransfer∪{a})"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="sendReqTransfer∪{a}∈ℙ(sendReqTransfer∪recvReqTransfer∪{a})"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/inv2/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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p31,p32"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p31,p32"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p33,p34"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p33,p34"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p35,p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p35,p36"/>
<org.eventb.core.prRule name="r1" 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="p11" org.eventb.core.prInfHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p37" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p31">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF6" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT7" org.eventb.core.prHyps="p1,p20,p21,p22,p23,p24,p42"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p33">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p26,p28,p30,p44,p47,p49"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p61"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p62"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p27,p29,p48,p53,p54,p56"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p8,p17,p19,p3,p2,p14,p10,p12,p1,p4,p5,p13,p18,p15,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62">
<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.prAnte>
</org.eventb.core.prRule>
</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.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∉trans"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬a∈trans"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="¬a∈reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="recvReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer∪{a})"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="recvReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer∪{a})"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/inv7/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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p31,p32"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p31,p32"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p33,p34"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p33,p34"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p35,p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p35,p36"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p39">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<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="p40"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p38" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p31">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p20,p21,p22,p23,p24,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p33">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p50" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p26,p28,p30,p45,p48,p50"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p61"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p55" org.eventb.core.prInfHyps="p62"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p57" org.eventb.core.prInfHyps="p63"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p27,p29,p49,p54,p55,p57"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p8,p17,p19,p3,p2,p14,p10,p12,p1,p4,p5,p15,p18,p13,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p38,p44,p45,p46,p47,p48,p49,p50,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63">
<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.prAnte>
</org.eventb.core.prRule>
</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.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p64">
<org.eventb.core.prRule name="r1" 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="p11" org.eventb.core.prInfHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<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="p40"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE3" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p38" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p31">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p20,p21,p22,p23,p24,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p33">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p50" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p26,p28,p30,p45,p48,p50"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p61"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p55" org.eventb.core.prInfHyps="p62"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p57" org.eventb.core.prInfHyps="p63"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p27,p29,p49,p54,p55,p57"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="p8,p17,p19,p3,p2,p14,p10,p12,p1,p4,p5,p15,p18,p13,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p38,p44,p45,p46,p47,p48,p49,p50,p52,p53,p54,p55,p56,p57,p58,p59,p60,p61,p62,p63">
<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.prAnte>
</org.eventb.core.prRule>
</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.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="reqTransfer∪{a}=sendReqTransfer∪{a}∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="a∉trans"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="¬a∈trans"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="reqTransfer∪{a}=(sendReqTransfer∪{a})∪recvReqTransfer"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="¬a∈reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="sendReqTransfer∪recvReqTransfer∪{a}=sendReqTransfer∪{a}∪recvReqTransfer"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(reqTransfer∪{a},sendReqTransfer∪{a},recvReqTransfer)"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="a∈ATM"/>
<org.eventb.core.prPred name="p64" org.eventb.core.predicate="(sendReqTransfer∪{a})∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬a∈sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendReqTransfer/act2/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p14,p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p14,p15"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p17,p18"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p17,p18"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p24">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p23"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="trAmount{a ↦ am}=trAmount{a ↦ am}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(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="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="a∉trans">
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬a∈trans">
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqTransfer/inv1/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p11,p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p48,p49"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈sendReqTransfer"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="sendReqTransfer ∖ {a}∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendReqTransfer ∖ {a}∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqTransfer/inv2/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p45">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p1,p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p48,p49"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvReqTransfer∪{a}∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="recvReqTransfer∪{a}∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈sendReqTransfer"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="recvReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvReqTransfer/inv7/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p46">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p50" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p49,p50"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p57">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p50" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p49,p50"/>
</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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="reqTransfer=(sendReqTransfer ∖ {a})∪recvReqTransfer∪{a}"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="sendReqTransfer∪recvReqTransfer=(sendReqTransfer ∖ {a})∪recvReqTransfer∪{a}"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈sendReqTransfer"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="reqTransfer=(sendReqTransfer ∖ {a})∪(recvReqTransfer∪{a})"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendReqTransfer ∖ {a})∩(recvReqTransfer∪{a})=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer ∖ {a},recvReqTransfer∪{a})"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferOk/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,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p4,p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p8,p16,p18,p3,p2,p14,p10,p11,p1,p4,p5,p13,p17,p12,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="sendRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈transferOk"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendRespTransferOk∪{a}∈ℙ(respTransferOk∪{a})"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="sendRespTransferOk∪{a}∈ℙ(sendRespTransferOk∪recvRespTransferOk∪{a})"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferOk/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p5,p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p8,p16,p18,p3,p2,p14,p10,p11,p1,p4,p5,p13,p17,p12,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="recvRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈transferOk"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk∪{a})"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="recvRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk∪{a})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferOk/inv8/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p8,p16,p18,p3,p2,p14,p10,p11,p1,p4,p5,p13,p17,p12,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p52,p53,p54,p55,p56">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p57">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p8,p16,p18,p3,p2,p14,p10,p11,p1,p4,p5,p13,p17,p12,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p52,p53,p54,p55,p56">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(respTransferOk∪{a},sendRespTransferOk∪{a},recvRespTransferOk)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk∪{a}=(sendRespTransferOk∪{a})∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="respTransferOk∪{a}=sendRespTransferOk∪{a}∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendRespTransferOk∪{a})∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈transferOk"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="sendRespTransferOk∪recvRespTransferOk∪{a}=sendRespTransferOk∪{a}∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferOk/grd3/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p8,p16,p18,p3,p2,p13,p10,p11,p1,p4,p5,p14,p17,p12,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∉transferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="a∈transferOk"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬a∈transferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferOk/act2/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p14,p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p14,p15"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p17,p18"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p17,p18"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(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="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(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="transferOk ∖ {a}=transferOk ∖ {a}"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferOk/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,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p4,p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p14,p11,p12,p1,p4,p5,p13,p17,p7,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="sendRespTransferOk ∖ {a}∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="sendRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendRespTransferOk ∖ {a}∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferOk/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p5,p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p14,p11,p12,p1,p4,p5,p13,p17,p7,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvRespTransferOk∪{a}∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="recvRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="recvRespTransferOk∪{a}∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferOk/inv8/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p51">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p14,p11,p12,p1,p4,p5,p13,p17,p7,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p52,p53,p54,p55,p56">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p57">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
</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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendRespTransferOk ∖ {a})∩(recvRespTransferOk∪{a})=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=(sendRespTransferOk ∖ {a})∪(recvRespTransferOk∪{a})"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="respTransferOk=(sendRespTransferOk ∖ {a})∪recvRespTransferOk∪{a}"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="sendRespTransferOk∪recvRespTransferOk=(sendRespTransferOk ∖ {a})∪recvRespTransferOk∪{a}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk ∖ {a},recvRespTransferOk∪{a})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="a∈sendRespTransferOk"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFails/inv1/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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p38,p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39"/>
<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="p40"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p14,p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p45,p48"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p49,p53,p54"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p10,p19,p22,p5,p3,p16,p13,p14,p1,p6,p8,p17,p21,p15,p20,p4,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="a∈dom(trAmount)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈recvReqTransfer"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="am=trAmount(a)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="trAmount∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="sendReqTransfer∈ℙ((sendReqTransfer∪recvReqTransfer) ∖ {a})"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="trAmount(a)∈ℕ1"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="sendReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer ∖ {a})"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFails/inv2/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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p38,p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39"/>
<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="p40"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p1,p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p45,p48"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p49,p53,p54"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p10,p19,p22,p5,p3,p16,p13,p14,p1,p6,p8,p17,p21,p15,p20,p4,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="a∈dom(trAmount)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈recvReqTransfer"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="am=trAmount(a)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="trAmount∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="recvReqTransfer ∖ {a}∈ℙ((sendReqTransfer∪recvReqTransfer) ∖ {a})"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="trAmount(a)∈ℕ1"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="recvReqTransfer∈ℙ(sendReqTransfer∪recvReqTransfer)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvReqTransfer ∖ {a}∈ℙ(reqTransfer ∖ {a})"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFails/inv7/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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p38,p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40">
<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="p41"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p45,p48"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p49,p53,p54"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p10,p20,p22,p5,p4,p16,p13,p14,p1,p6,p8,p15,p21,p17,p19,p3,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p61">
<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="p41"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p45,p48"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p49,p53,p54"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p10,p20,p22,p5,p4,p16,p13,p14,p1,p6,p8,p15,p21,p17,p19,p3,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer) ∖ {a}=sendReqTransfer∪(recvReqTransfer ∖ {a})"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="a∈dom(trAmount)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈recvReqTransfer"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="reqTransfer ∖ {a}=sendReqTransfer∪(recvReqTransfer ∖ {a})"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am=trAmount(a)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="sendReqTransfer∩(recvReqTransfer ∖ {a})=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="trAmount∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(reqTransfer ∖ {a},sendReqTransfer,recvReqTransfer ∖ {a})"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="trAmount(a)∈ℕ1"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFails/grd17/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p38,p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39"/>
<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="p40"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p41"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p44,p47"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p52" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p48,p52,p53"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p10,p19,p22,p5,p4,p16,p13,p14,p1,p6,p8,p17,p21,p15,p20,p3,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p43,p44,p45,p46,p47,p48,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="a∈sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="a∈dom(trAmount)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈recvReqTransfer"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am=trAmount(a)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="trAmount∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="trAmount(a)∈ℕ1"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈reqTransfer"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFails/grd18/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p38,p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40">
<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="p41"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p45,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p52" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p49,p52,p53"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p10,p20,p22,p5,p4,p16,p13,p14,p1,p6,p8,p15,p21,p17,p19,p3,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59">
<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.prAnte>
</org.eventb.core.prRule>
</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.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="a∈dom(trAmount)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈recvReqTransfer"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am=trAmount(a)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∉transferFail"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="trAmount∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="trAmount(a)∈ℕ1"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬a∈transferFail"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFails/grd19/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p38,p39"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p40">
<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="p41"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with am=trAmount(a)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p23,p24,p25,p26,p27"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p33" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p29,p31,p33,p45,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p32" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p52" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p53" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p30,p32,p49,p52,p53"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p10,p20,p22,p5,p4,p16,p13,p14,p1,p6,p8,p15,p21,p17,p19,p3,p7,p2,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p36,p37,p38,p39,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59">
<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.prAnte>
</org.eventb.core.prRule>
</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.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</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="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="a∈dom(trAmount)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="a∈recvReqTransfer"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="am=trAmount(a)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∉transferOk"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="trAmount∈ATM ⇸ ℤ"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬a∈transferOk"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="trAmount(a)∈ℕ1"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="am∈ℕ1"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferFail/inv5/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p13,p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="sendRespTransferFail∪{a}∈ℙ(sendRespTransferFail∪recvRespTransferFail∪{a})"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="sendRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendRespTransferFail∪{a}∈ℙ(respTransferFail∪{a})"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈transferFail"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferFail/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p16,p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="recvRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈transferFail"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail∪{a})"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="recvRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail∪{a})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferFail/inv9/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p56">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p57">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈transferFail"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="sendRespTransferFail∪recvRespTransferFail∪{a}=sendRespTransferFail∪{a}∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferFail∪{a}=(sendRespTransferFail∪{a})∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(respTransferFail∪{a},sendRespTransferFail∪{a},recvRespTransferFail)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendRespTransferFail∪{a})∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="respTransferFail∪{a}=sendRespTransferFail∪{a}∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferFail/grd3/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p17,p16,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∉transferOk"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="a∈transferFail"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬a∈transferOk"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="SendRespTransferFail/act2/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p14,p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p14,p15"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p17,p18"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p17,p18"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(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="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="transferFail ∖ {a}=transferFail ∖ {a}"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferFail/inv5/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p13,p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="sendRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="sendRespTransferFail ∖ {a}∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendRespTransferFail ∖ {a}∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferFail/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p16,p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="recvRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="recvRespTransferFail∪{a}∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvRespTransferFail∪{a}∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="RecvRespTransferFail/inv9/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p37">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p56">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p57">
<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="p38"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p40"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p41" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p41,p44"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p49" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p45,p48,p49"/>
</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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(sendRespTransferFail ∖ {a})∩(recvRespTransferFail∪{a})=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferFail=(sendRespTransferFail ∖ {a})∪(recvRespTransferFail∪{a})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail ∖ {a},recvRespTransferFail∪{a})"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="respTransferFail=(sendRespTransferFail ∖ {a})∪recvRespTransferFail∪{a}"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="sendRespTransferFail∪recvRespTransferFail=(sendRespTransferFail ∖ {a})∪recvRespTransferFail∪{a}"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈sendRespTransferFail"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferOKAtm/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,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p4,p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p14,p11,p12,p1,p4,p6,p13,p17,p5,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="sendRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="sendRespTransferOk∈ℙ((sendRespTransferOk∪recvRespTransferOk) ∖ {a})"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈recvRespTransferOk"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk ∖ {a})"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferOKAtm/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p6,p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p14,p11,p12,p1,p4,p6,p13,p17,p5,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="recvRespTransferOk∈ℙ(sendRespTransferOk∪recvRespTransferOk)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈recvRespTransferOk"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvRespTransferOk ∖ {a}∈ℙ(respTransferOk ∖ {a})"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="recvRespTransferOk ∖ {a}∈ℙ((sendRespTransferOk∪recvRespTransferOk) ∖ {a})"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferOKAtm/inv8/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p13,p11,p12,p1,p4,p6,p14,p17,p5,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p56">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p13,p11,p12,p1,p4,p6,p14,p17,p5,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(respTransferOk ∖ {a},sendRespTransferOk,recvRespTransferOk ∖ {a})"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferOk ∖ {a}=sendRespTransferOk∪(recvRespTransferOk ∖ {a})"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈recvRespTransferOk"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="sendRespTransferOk∩(recvRespTransferOk ∖ {a})=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk) ∖ {a}=sendRespTransferOk∪(recvRespTransferOk ∖ {a})"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferOKAtm/grd8/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p49">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p14,p11,p12,p1,p4,p6,p13,p17,p5,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈recvRespTransferOk"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="a∈sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈respTransferOk"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferOKAtm/grd9/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p9,p16,p18,p3,p2,p13,p11,p12,p1,p4,p6,p14,p17,p5,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∉respTransferFail"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="a∈recvRespTransferOk"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬a∈respTransferFail"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="¬a∈sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferOKAtm/act6/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p14,p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p14,p15"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p17,p18"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p17,p18"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(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="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="trans ∖ {a}=trans ∖ {a}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFailsAtm/inv5/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p13,p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="sendRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="sendRespTransferFail∈ℙ((sendRespTransferFail∪recvRespTransferFail) ∖ {a})"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail ∖ {a})"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈recvRespTransferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFailsAtm/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT6" org.eventb.core.prHyps="p16,p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="recvRespTransferFail ∖ {a}∈ℙ((sendRespTransferFail∪recvRespTransferFail) ∖ {a})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="recvRespTransferFail∈ℙ(sendRespTransferFail∪recvRespTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="recvRespTransferFail ∖ {a}∈ℙ(respTransferFail ∖ {a})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈recvRespTransferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFailsAtm/inv9/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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p56">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(respTransferFail ∖ {a},sendRespTransferFail,recvRespTransferFail ∖ {a})"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="respTransferFail ∖ {a}=sendRespTransferFail∪(recvRespTransferFail ∖ {a})"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="sendRespTransferFail∩(recvRespTransferFail ∖ {a})=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(sendRespTransferFail∪recvRespTransferFail) ∖ {a}=sendRespTransferFail∪(recvRespTransferFail ∖ {a})"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈recvRespTransferFail"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFailsAtm/grd8/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<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="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p39" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p42" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p39,p42"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p54">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p43,p46,p47"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p12,p10,p11,p1,p4,p5,p13,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∈respTransferFail"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="a∈sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈recvRespTransferFail"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFailsAtm/grd9/GRD" 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,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="ATM">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p30,p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p30,p31"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p32,p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p32,p33"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p34,p35"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p34,p35"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p36">
<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="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p38"/>
<org.eventb.core.prHypAction name="HIDE2" org.eventb.core.prHyps="p39"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with reqTransfer=sendReqTransfer∪recvReqTransfer" org.eventb.core.prHyps="p30">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p22,p23"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferOk=sendRespTransferOk∪recvRespTransferOk" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p50">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p40" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p43" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p25,p27,p29,p40,p43"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with respTransferFail=sendRespTransferFail∪recvRespTransferFail" org.eventb.core.prHyps="p34">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p51"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p44" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p47" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p48" org.eventb.core.prInfHyps="p55"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p26,p28,p44,p47,p48"/>
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p8,p15,p18,p3,p2,p13,p10,p11,p1,p4,p5,p12,p16,p17,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p35,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p51,p52,p53,p54,p55">
<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.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="trAmount" org.eventb.core.type="ℙ(ATM×ℤ)"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transOkAtm" org.eventb.core.type="ℙ(ATM×BOOL)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFailA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOkA" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="recvReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="transferFail∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬a∈sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="trans∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="respTransferOk∈ℙ(trans)"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="transOkAtm∈ATM ⇸ BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="trAmount∈ATM ⇸ ℕ1"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="transferFailA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="sendReqTransfer∈ℙ(reqTransfer)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="transferOk⊆transferOkA"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="sendRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬a∈respTransferOk"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="recvRespTransferFail∈ℙ(respTransferFail)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="transferOk∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="sendRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩transferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="transferOkA∈ℙ(ATM)"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(sendRespTransferOk∪recvRespTransferOk)∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="respTransferFail∈ℙ(trans)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="recvRespTransferOk∈ℙ(respTransferOk)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="reqTransfer∈ℙ(trans)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(sendReqTransfer∪recvReqTransfer)∩(sendRespTransferOk∪recvRespTransferOk)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪sendRespTransferOk∪recvRespTransferOk∪sendRespTransferFail∪recvRespTransferFail"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail⊆transferFailA"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="transferFail∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="trans=sendReqTransfer∪recvReqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="a∉respTransferOk"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="a∈recvRespTransferFail"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="transferOk∩(sendRespTransferFail∪recvRespTransferFail)=(∅ ⦂ ℙ(ATM))"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="TransferFailsAtm/act6/SIM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(reqTransfer,sendReqTransfer,recvReqTransfer))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p14,p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p14,p15"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferOk,sendRespTransferOk,recvRespTransferOk))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p17,p18"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p17,p18"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(respTransferFail,sendRespTransferFail,recvRespTransferFail))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p22">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="a" org.eventb.core.type="ATM"/>
<org.eventb.core.prIdent name="trans" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="respTransferFail=sendRespTransferFail∪recvRespTransferFail">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="sendRespTransferFail∩recvRespTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(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="transferOk∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="sendRespTransferOk∩recvRespTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="reqTransfer∩transferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="partition(respTransferFail,sendRespTransferFail,recvRespTransferFail)">
<org.eventb.core.prIdent name="recvRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendRespTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="trans=reqTransfer∪transferOk∪transferFail∪respTransferOk∪respTransferFail">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="transferFail∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(respTransferOk,sendRespTransferOk,recvRespTransferOk)">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="trans ∖ {a}=trans ∖ {a}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="transferFail∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(reqTransfer,sendReqTransfer,recvReqTransfer)">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="reqTransfer∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="reqTransfer=sendReqTransfer∪recvReqTransfer">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="reqTransfer∩transferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="respTransferOk=sendRespTransferOk∪recvRespTransferOk">
<org.eventb.core.prIdent name="recvRespTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(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="partition(trans,reqTransfer,transferOk,transferFail,respTransferOk,respTransferFail)">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="respTransferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="transferOk∩respTransferOk=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferOk" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="transferOk∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="transferOk" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="reqTransfer∩respTransferFail=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="reqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="respTransferFail" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="sendReqTransfer∩recvReqTransfer=(∅ ⦂ ℙ(ATM))">
<org.eventb.core.prIdent name="recvReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
<org.eventb.core.prIdent name="sendReqTransfer" org.eventb.core.type="ℙ(ATM)"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.partitionRewrites"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL3:0"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>
