<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="inv6/THM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p2,p1,p5,p7,p4,p3,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv7/THM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p9,p2,p1,p5,p8,p4,p3,p7,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv8/THM" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p10,p3,p1,p6,p9,p5,p4,p8,p7,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv9/THM" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p11,p3,p1,p7,p10,p5,p4,p9,p8,p2,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
</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="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p2,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(MINE_SET×ONOFF))∈(∅ ⦂ ℙ(MINE_SET)) → ONOFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</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="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p2,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(MINE_SET×BOOL))∈(∅ ⦂ ℙ(MINE_SET)) → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</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="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p2,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(MINE_SET×BOOL))∈(∅ ⦂ ℙ(MINE_SET)) → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</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="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p2,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(MINE_SET×LEVEL))∈(∅ ⦂ ℙ(MINE_SET)) → LEVEL"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updatePump/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in hyp ({m ↦ ON})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p19"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p20"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in hyp ({m ↦ OFF})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p20"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p21"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p22"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p21"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p23,p24"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p25,p26,p27,p28"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p25,p26,p27,p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (ONOFF={ON,OFF})" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p23">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp ((pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ OFF}))" org.eventb.core.prHyps="p22">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p32,p33">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (pump(m)=OFF)" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p34"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p35"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p36"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p23,p24,p30"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (pump'=({m} ⩤ pump)∪{m ↦ ON})" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p33">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p38">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p17,p10,p3,p13,p14,p8,p11,p4,p1,p5,p16,p6,p12,p22,p23,p24,p25,p26,p27,p28,p29,p30,p32,p33,p34,p35,p36">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p33"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p32"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p39,p40">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (pump(m)=ON)" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p39">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p44">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p23,p24,p30"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (pump'=({m} ⩤ pump)∪{m ↦ OFF})" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p40">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p17,p10,p3,p13,p14,p8,p11,p4,p1,p5,p16,p6,p12,p22,p23,p24,p25,p26,p27,p28,p29,p30,p39,p40,p41,p42,p43">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p40"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p39"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p23"/>
</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.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.1.1.1"/>
</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="0.1.1.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="pump'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="(pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="pump'∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="(pump(m)=OFF∧pump'=(dom({m ↦ ON}) ⩤ pump)∪{m ↦ ON})∨(pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="({m} ⩤ pump)∪{m ↦ OFF}∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="pump'=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="pump∈MINE → {ON,OFF}"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="pump'∈MINE → {ON,pump(m)}"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="ONOFF={ON,pump(m)}"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="pump(m)=OFF"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="(pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(pump(m)=ON∧pump'=(dom({m ↦ OFF}) ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="¬ON=pump(m)"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="({m} ⩤ pump)∪{m ↦ ON}∈MINE → {ON,pump(m)}"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="(pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="¬pump(m)=OFF"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="pump'∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="pump∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="pump∈MINE → {ON,pump(m)}"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="pump'∈MINE → {ON,OFF}"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="ONOFF={pump(m),OFF}"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="pump(m)=ON"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="pump'=({m} ⩤ pump)∪{m ↦ ON}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m∈dom(pump)"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateBell/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p16,p10,p8,p13,p17,p11,p3,p14,p15,p9,p12,p4,p1,p2,p7,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="status" org.eventb.core.type="BOOL"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="status∈BOOL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="bell{m ↦ status}∈MINE → BOOL"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateMethane/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p16,p10,p8,p13,p17,p11,p3,p14,p15,p9,p12,p4,p1,p2,p7,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="status" org.eventb.core.type="BOOL"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="methane{m ↦ status}∈MINE → BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="status∈BOOL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateWaterLevel/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p18,p19"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p17"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p18,p19"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p20,p21,p22,p23"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20,p21,p22,p23"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p24"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p24"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p25"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (LEVEL={LOW,MEDIUM,HIGH})" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p26"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp ((waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM}))" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p28,p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=HIGH)" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p28">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p34">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p32"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p33"/>
<org.eventb.core.prHypAction name="DESELECT4" org.eventb.core.prHyps="p20,p22,p23,p26"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=waterLevel{m ↦ MEDIUM})" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p29">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p35">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in hyp ({m ↦ MEDIUM})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p36"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p36" org.eventb.core.prInfHyps="p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p36"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p16,p11,p2,p14,p13,p8,p12,p3,p1,p5,p4,p9,p6,p15,p18,p19,p20,p21,p22,p23,p24,p26,p28,p30,p31,p32,p33,p37">
<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.prString name=".pos" org.eventb.core.prSValue="1.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p29"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p38,p39">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=MEDIUM)" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p43">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="DESELECT4" org.eventb.core.prHyps="p20,p21,p23,p26"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=waterLevel{m ↦ LOW})" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p39">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p44">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p46">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p16,p11,p2,p14,p13,p8,p12,p3,p1,p5,p4,p9,p6,p15,p18,p19,p20,p21,p22,p23,p24,p26,p38,p39,p40,p31,p41,p42">
<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.prString name=".pos" org.eventb.core.prSValue="0.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p39"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p38"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p38,p47">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=MEDIUM)" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p43">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="DESELECT4" org.eventb.core.prHyps="p20,p21,p23,p26"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=waterLevel{m ↦ HIGH})" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p47">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p48">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p49">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p50">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p16,p11,p2,p14,p13,p8,p12,p3,p1,p5,p4,p9,p6,p15,p18,p19,p20,p21,p22,p23,p24,p26,p38,p47,p40,p31,p41,p42">
<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.prString name=".pos" org.eventb.core.prSValue="0.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p47"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p38"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="3" org.eventb.core.prHyps="p51,p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=LOW)" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p51">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p55">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p53"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p26" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT4" org.eventb.core.prHyps="p20,p21,p22,p26"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=waterLevel{m ↦ MEDIUM})" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p29">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p56">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p57">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p58">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p58" org.eventb.core.prHyps="p16,p11,p2,p14,p13,p8,p12,p3,p1,p5,p4,p9,p6,p15,p18,p19,p20,p21,p22,p23,p24,p26,p51,p29,p52,p53,p41,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.prString name=".pos" org.eventb.core.prSValue="0.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p29"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p51"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</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.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prIdent name="waterLevel'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="¬MEDIUM=waterLevel(m)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(dom({m ↦ HIGH}) ⩤ waterLevel)∪{m ↦ HIGH}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="waterLevel∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(dom({m ↦ LOW}) ⩤ waterLevel)∪{m ↦ LOW}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="waterLevel'∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="LEVEL={waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="¬LOW=waterLevel(m)"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="¬waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="waterLevel'=(dom({m ↦ MEDIUM}) ⩤ waterLevel)∪{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="({m} ⩤ waterLevel)∪{m ↦ LOW}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="waterLevel{m ↦ MEDIUM}∈MINE → {LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="waterLevel∈MINE → {LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="waterLevel'=waterLevel{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="waterLevel{m ↦ MEDIUM}∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="waterLevel'=waterLevel{m ↦ HIGH}"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="waterLevel{m ↦ LOW}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="waterLevel{m ↦ HIGH}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="({m} ⩤ waterLevel)∪{m ↦ HIGH}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="waterLevel∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="waterLevel'∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="waterLevel∈MINE → {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="waterLevel'=waterLevel{m ↦ LOW}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="LEVEL={LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="(dom({m ↦ MEDIUM}) ⩤ waterLevel)∪{m ↦ MEDIUM}∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p15,p9,p7,p12,p16,p10,p3,p13,p14,p8,p11,p4,p1,p2,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="pump{M ↦ OFF}∈{M} → ONOFF"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p15,p9,p7,p12,p16,p10,p3,p13,p14,p8,p11,p4,p1,p2,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="bell{M ↦ FALSE}∈{M} → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p15,p9,p7,p12,p16,p10,p3,p13,p14,p8,p11,p4,p1,p2,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="methane{M ↦ FALSE}∈{M} → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p15,p9,p7,p12,p16,p10,p3,p13,p14,p8,p11,p4,p1,p2,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="waterLevel{M ↦ LOW}∈{M} → LEVEL"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updatePump/act1/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="pump0'" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2" org.eventb.core.prSets="MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p2">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p6">
<org.eventb.core.prRule name="org.eventb.core.seqprover.isFunGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p6" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p7">
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees pump0')" org.eventb.core.prGoal="p7" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p8">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="p2">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p9">
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p10">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p11">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p12">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p13">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p1" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p6">
<org.eventb.core.prRule name="org.eventb.core.seqprover.isFunGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p6" org.eventb.core.prHyps="p2"/>
</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.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0.1.1.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</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="1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="∀pump'⦂ℙ(MINE_SET×ONOFF)·m∈MINE∧pump∈MINE_SET ⇸ ONOFF∧((pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF))"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="¬(pump(m)=OFF∧pump0'=({m} ⩤ pump)∪{m ↦ ON})">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="(pump(m)=OFF∧pump0'=({m} ⩤ pump)∪{m ↦ ON})∨(m∈MINE∧pump∈MINE_SET ⇸ ONOFF)">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="(pump(m)=OFF∧pump0'=pump{m ↦ ON})∨(m∈MINE∧pump∈MINE_SET ⇸ ONOFF)">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀pump'⦂ℙ(MINE_SET×ONOFF)·(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m∈MINE∧pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀pump'⦂ℙ(MINE_SET×ONOFF)·m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF∧((pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF))"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="m∈MINE∧pump∈MINE_SET ⇸ ONOFF∧(∀pump'⦂ℙ(MINE_SET×ONOFF)·(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF))"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="(pump(m)=OFF∧pump0'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬(pump(m)=OFF∧pump0'=({m} ⩤ pump)∪{m ↦ ON})⇒m∈MINE∧pump∈MINE_SET ⇸ ONOFF">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="(pump(m)=OFF∧pump0'=(dom({m ↦ ON}) ⩤ pump)∪{m ↦ ON})∨(m∈MINE∧pump∈MINE_SET ⇸ ONOFF)">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="MINE"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updatePump/act1/FIS" 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="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p19,p20"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p21,p22,p23,p24"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p21,p22,p23,p24"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p25"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p27"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp (pump(m)=ON∨pump(m)=OFF)" org.eventb.core.prHyps="p6">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p28">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (pump(m)=ON)" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p28">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p19,p20"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p32">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p33">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p34">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p17,p12,p3,p14,p15,p9,p13,p4,p1,p2,p5,p6,p16,p7,p11,p19,p20,p21,p22,p23,p24,p25,p28,p29,p30,p34">
<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.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p36">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (pump(m)=OFF)" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p39">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p37"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p38"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p19,p20"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p40">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah ((∃pump'·pump(m)=ON∧pump'=pump{m ↦ pump(m)})∨(∃pump'·pump'=pump{m ↦ ON}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p41">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="p25">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p42">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (ONOFF={ON,pump(m)})" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p37">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p43">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p16">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p16"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p44">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(pump)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p15">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p15"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p15">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p25">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(pump)=MINE)" org.eventb.core.prHyps="p15">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p46" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p46"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p17,p12,p3,p14,p15,p9,p13,p4,p1,p2,p5,p6,p16,p7,p11,p19,p20,p21,p22,p23,p24,p25,p36,p37,p38,p46,p47">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p15"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p25"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p15"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p48">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p16">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="p16"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p44">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (pump(m)=ON)" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="p28">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p51">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p38" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p37,p38"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p53">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p50" org.eventb.core.prInfHyps="p52"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p50"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.falseHyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p52"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p37"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p25"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p16,p7,p54">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p25">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p7,p54"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (ONOFF={ON,pump(m)})" org.eventb.core.prHyps="p37">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p57" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p56,p57"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p58">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p58" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p59">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p17,p12,p3,p14,p15,p9,p13,p4,p1,p2,p5,p6,p16,p7,p11,p19,p20,p21,p22,p23,p24,p25,p36,p37,p38,p54,p56,p57,p44,p48,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.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p37"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p25"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p16,p7,p54,p55">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p25">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p54" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p7,p54"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (ONOFF={ON,pump(m)})" org.eventb.core.prHyps="p37">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p57" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p56,p57"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (∃pump'·pump'=pump{m ↦ ON})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p60">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p17,p12,p3,p14,p15,p9,p13,p4,p1,p2,p5,p6,p16,p7,p11,p19,p20,p21,p22,p23,p24,p25,p36,p37,p38,p54,p55,p56,p57,p44,p48">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p60">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p60"/>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p60"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p37"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p25"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p55"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p36"/>
</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.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=pump(m)∧pump'=pump{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="dom(pump)⊆{M}"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="pump∈{M} ⇸ ONOFF"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∃pump'⦂ℙ(MINE_SET×ONOFF)·(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="MINE⊆{M}"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="pump(m)=ON⇒m∈dom(pump)∧pump∈{M} ⇸ ONOFF"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="pump∈{M} ⇸ {pump(m)}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ ON})"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=pump{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=pump{m ↦ pump(m)})⇒(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="m∈dom(pump)∧pump∈{M} ⇸ {ON,pump(m)}∧(pump(m)=ON⇒m∈dom(pump)∧pump∈{M} ⇸ {ON,pump(m)})"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="¬pump(m)=OFF"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})⇒(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ ON})"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="pump(m)=ON"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF∧(pump(m)=ON⇒m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m∈dom(pump)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="⊥"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=pump{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="m∈dom(pump)∧pump∈{M} ⇸ ONOFF∧(pump(m)=ON⇒m∈dom(pump)∧pump∈{M} ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ ON}"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="ONOFF={ON,pump(m)}"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=pump{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="pump∈{M} ⇸ {ON,pump(m)}"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=pump{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=pump(m)∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="m∈dom(pump)∧pump∈{M} ⇸ {ON,pump(m)}"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="pump(m)=OFF"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="pump∈{M} ⇸ {pump(m),pump(m)}"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="¬ON=pump(m)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="pump(m)=ON⇒m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ OFF}"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="pump(m)=ON⇒m∈dom(pump)∧pump∈{M} ⇸ {ON,pump(m)}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="ONOFF={pump(m),OFF}"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬pump(m)=pump(m)"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateBell/act1/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="bell0'" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1" org.eventb.core.prSets="MINE_SET">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p3,p4"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p3,p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p6,p7,p8,p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p6,p7,p8,p9"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p11">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p13">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p14">
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees bell0')" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p15">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p16">
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees bell0')" org.eventb.core.prGoal="p16" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p17">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p10"/>
</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.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="m∈dom(bell0')">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="(∀bell'⦂ℙ(MINE_SET×BOOL)·m∈dom(bell'))∧(∀bell'⦂ℙ(MINE_SET×BOOL)·bell'∈{M} ⇸ BOOL)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="¬LOW=HIGH">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LEVEL" org.eventb.core.type="ℙ(LEVEL)"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="bell0'∈{M} ⇸ BOOL">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="∀bell'⦂ℙ(MINE_SET×BOOL)·bell'∈{M} ⇸ BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="(∀bell'⦂ℙ(MINE_SET×BOOL)·m∈dom(bell'))∧(∀bell'⦂ℙ(MINE_SET×BOOL)·bell'∈MINE_SET ⇸ BOOL)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="¬ON=OFF">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬LOW=MEDIUM">
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀bell'⦂ℙ(MINE_SET×BOOL)·m∈dom(bell')"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LEVEL" org.eventb.core.type="ℙ(LEVEL)"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="ONOFF={ON,OFF}">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ONOFF" org.eventb.core.type="ℙ(ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬MEDIUM=HIGH">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)">
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ONOFF" org.eventb.core.type="ℙ(ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀bell'⦂ℙ(MINE_SET×BOOL)·m∈dom(bell')∧bell'∈MINE_SET ⇸ BOOL"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateBell/act1/FIS" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p2">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" 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.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∃bell'⦂ℙ(MINE_SET×BOOL)·bell'(m)∈BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)">
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateWaterLevel/act1/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="waterLevel0',x0,x1,x" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p14,p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p14,p15"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p16,p17,p18,p19"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p16,p17,p18,p19"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p20"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p20"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p21">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (LEVEL={LOW,MEDIUM,HIGH})" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p16">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p23">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p24">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p25">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p1,p18,p2,p3,p4,p16,p17,p14,p6,p8,p15,p9,p19,p11,p10,p20,p13">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.rm" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="remove ∈ in goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p30">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p4,p29"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p28,p29,p25,p31">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p32">
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees x,x0,x1)" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p33">
<org.eventb.core.prIdent name="x" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="x0" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="x1" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p34,p35">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p28,p29,p34,p35">
<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.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p37">
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees waterLevel0')" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p38">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p39">
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p39" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p40">
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p41">
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p42">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p43">
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p44">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p46">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p47">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p48">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p49">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p50">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p51">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p52">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p53"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in hyp (dom(waterLevel))" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p4"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p25"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p1,p4,p14,p15,p16,p17,p18,p19,p20,p52">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p29,p28"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p52,p28,p29,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</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.prAnte name="2" org.eventb.core.prGoal="p55">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p56">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p56" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p57">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p58">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p58" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p57">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p59">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p59" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p60">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p25"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p61">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p62">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p62" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="p52">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p64">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p65">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25,p28,p29,p31,p52,p65">
<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.prString name=".pos" org.eventb.core.prSValue=""/>
</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.prAnte name="2" org.eventb.core.prGoal="p66">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p66" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p67">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p67" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p68">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p68" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p69">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p69" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p60">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p60" org.eventb.core.prHyps="p25"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p61">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25,p28,p29,p31">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p70">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p70" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p71">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p71" org.eventb.core.prHyps="p25"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p72">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p72" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p73">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p73" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p74" org.eventb.core.prHyps="p52">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p74" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p75">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p75" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p76" org.eventb.core.prHyps="p65">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p76" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p77">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p77" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p78">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25,p28,p29,p31,p52,p65,p78">
<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.prString name=".pos" org.eventb.core.prSValue=""/>
</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.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="3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="2"/>
</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="2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p79">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p79" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p80">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p80" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p81" org.eventb.core.prHyps="p52">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p81" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p82">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p82" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p84" org.eventb.core.prHyps="p83">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p84" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p25">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p25"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25,p28,p29,p31,p52,p83">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p85">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p85" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p87" org.eventb.core.prHyps="p86">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p87" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p25">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="p25"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25,p28,p29,p31,p52,p83,p86,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</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.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="1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="2.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</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="1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p88">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p88" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p89">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p89" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p90">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p90" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p91">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p91" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p25,p28,p29,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</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.prAnte name="2" org.eventb.core.prGoal="p93">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p93" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p94">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p94" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p95">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p95" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p96">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p96" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p97">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p97" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p98">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p98" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p64">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p65">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p65,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p65,p25,p28,p29,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</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.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.prAnte name="2" org.eventb.core.prGoal="p99">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p99" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p100">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p100" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p101">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p101" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p102">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p102" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p96">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p96" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p97">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p97" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p98">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p98" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p64">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p65">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p28,p29,p92,p65">
<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.prString name=".pos" org.eventb.core.prSValue=""/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p103">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p103" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p104">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p104" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p105" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p105" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p106">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p106" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p107" org.eventb.core.prHyps="p65">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p107" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p108">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p108" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p76">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p76" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p77">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p77" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p78">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p65,p78,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p4,p29,p28"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p65,p78,p28,p29,p25,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</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="1"/>
</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.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="2"/>
</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="2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p109">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p109" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p110">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p110" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p111">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p111" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p112">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p112" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p113" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p113" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p114">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p114" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p83">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p83,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p92,p83,p25,p28,p29,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</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.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.prAnte name="2" org.eventb.core.prGoal="p115">
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p115" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p116">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p116" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p117">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p117" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p118">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p118" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p119">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p119" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p120">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p120" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p121" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p121" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p122">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p122" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="p83">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p64">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p65">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p4,p29,p28"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p28,p29,p92,p83,p65,p25,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</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.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.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="3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p123">
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p123" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p124">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p124" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p125">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p125" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p126">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p126" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p127" org.eventb.core.prHyps="p92">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p127" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p128">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p128" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p76" org.eventb.core.prHyps="p83">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p76" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p77">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p77" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p78">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p28"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p27" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p3" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p3">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p54"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p4,p29,p28"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p13,p8,p2,p10,p11,p6,p9,p3,p1,p4,p14,p15,p16,p17,p18,p19,p20,p28,p29,p92,p83,p78,p25,p31,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.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</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.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.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="3"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p28"/>
</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="2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1"/>
</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="1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="0"/>
</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="1.2.1.2.0.1.1.1"/>
</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="0.1.1.1"/>
</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="1.2.0.1.1.1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.2.1.2.1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.2.1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p16"/>
</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.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="∀x⦂MINE_SET,x0⦂LEVEL,x1⦂LEVEL·x ↦ x0∈waterLevel∧x ↦ x1∈waterLevel⇒x0=x1"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=(dom({m ↦ LOW}) ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="MINE⊆{M}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))))))"/>
<org.eventb.core.prPred name="p120" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p127" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="MINE=MINE"/>
<org.eventb.core.prPred name="p106" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p74" org.eventb.core.predicate="waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p94" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p61" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p119" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))))"/>
<org.eventb.core.prPred name="p80" org.eventb.core.predicate="¬waterLevel(m)=HIGH⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p68" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})"/>
<org.eventb.core.prPred name="p90" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p112" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p86" org.eventb.core.predicate="¬(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="¬waterLevel(m)=HIGH⇒waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p93" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p105" org.eventb.core.predicate="waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p121" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p113" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p126" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))))"/>
<org.eventb.core.prPred name="p84" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p124" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨m∈MINE">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p117" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel(m)=MEDIUM∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p78" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p76" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p87" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p111" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p97" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p108" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨m∈MINE">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="¬waterLevel(m)=HIGH⇒waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p67" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p99" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p88" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p82" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p60" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p115" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p116" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p110" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨m∈MINE">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="waterLevel∈{M} ↔ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="waterLevel(m)=HIGH∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="dom(waterLevel)⊆MINE_SET"/>
<org.eventb.core.prPred name="p85" org.eventb.core.predicate="¬(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p101" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel(m)=MEDIUM∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="x ↦ x1∈waterLevel">
<org.eventb.core.prIdent name="x" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="x1" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p107" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="waterLevel(m)=HIGH∨m∈MINE"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p69" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})"/>
<org.eventb.core.prPred name="p79" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=(dom({m ↦ MEDIUM}) ⩤ waterLevel)∪{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p103" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p91" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}⇒waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="x ↦ x0∈waterLevel∧x ↦ x1∈waterLevel⇒x0=x1">
<org.eventb.core.prIdent name="x" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="x0" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="x1" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p92" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p70" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p123" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p66" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="waterLevel(m)=HIGH∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="¬waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="waterLevel(m)=HIGH∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}))))))"/>
<org.eventb.core.prPred name="p77" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}⇒waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p65" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="x0=x1">
<org.eventb.core.prIdent name="x0" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="x1" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p104" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}⇒waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="dom(waterLevel)⊆{M}"/>
<org.eventb.core.prPred name="p114" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}⇒waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p128" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p72" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p89" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨m∈MINE">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p81" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p122" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}⇒waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p125" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p64" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM⇒waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p95" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p71" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨m∈dom(waterLevel)">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p75" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM⇒waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p109" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p118" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel(m)=MEDIUM∨m∈MINE">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="waterLevel(m)=HIGH∨((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p100" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="waterLevel(m)=HIGH∨(waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p96" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨m∈MINE">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="x ↦ x0∈waterLevel">
<org.eventb.core.prIdent name="x" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="x0" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p102" org.eventb.core.predicate="waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p83" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=(dom({m ↦ HIGH}) ⩤ waterLevel)∪{m ↦ HIGH})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p73" org.eventb.core.predicate="¬waterLevel(m)=HIGH⇒waterLevel(m)=MEDIUM∨waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈MINE∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p98" org.eventb.core.predicate="¬waterLevel0'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}⇒waterLevel(m)=MEDIUM∨waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="MINE"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateWaterLevel/act1/FIS" 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="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp (waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH)" org.eventb.core.prHyps="p14">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p20">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p21">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=LOW)" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p23">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p23" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p24">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p25,p26"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p25,p26"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p27,p28,p29,p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p27,p28,p29,p30"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p31"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=LOW)" org.eventb.core.prHyps="p20">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p32"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p33"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p34"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p27,p28,p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p35">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p36">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p38">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="p39">
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p40" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p41">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p41" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p42">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p19,p12,p3,p16,p17,p9,p13,p4,p1,p2,p7,p5,p14,p10,p6,p15,p20,p25,p26,p27,p28,p29,p30,p31,p32,p33,p34,p36,p39,p42">
<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.prString name=".pos" org.eventb.core.prSValue=""/>
</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.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.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</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.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p20"/>
</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="1" org.eventb.core.prHyps="p44">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p25,p26"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p18"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p25,p26"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p27,p28,p29,p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p27,p28,p29,p30"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p31"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p21">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=MEDIUM)" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p44">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p47">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p27" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p28" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p34"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p27,p28,p30"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p48">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (∃waterLevel'·waterLevel'=waterLevel{m ↦ LOW})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p49">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p49" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p50">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p19,p12,p3,p16,p17,p9,p13,p4,p1,p2,p7,p5,p14,p10,p6,p15,p44,p25,p26,p27,p28,p29,p30,p31,p45,p46,p34">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p50">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p50"/>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p50"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p44"/>
</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.prAnte name="2" org.eventb.core.prHyps="p51">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" 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="0" org.eventb.core.prGoal="p21">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (waterLevel(m)=HIGH)" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="p51">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p52">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p53">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (∃waterLevel'·waterLevel'=waterLevel{m ↦ MEDIUM})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p49">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p49" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p43">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p43" org.eventb.core.prHyps="p18,p11,p8,p19,p12,p3,p16,p17,p9,p13,p4,p1,p2,p7,p5,p14,p10,p6,p15,p51">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p43">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p53" org.eventb.core.prHyps="p43"/>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p43"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p51"/>
</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.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})⇒(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ LOW})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="LEVEL={waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="¬LOW=waterLevel(m)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="¬waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=waterLevel(m)∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=waterLevel(m)∧waterLevel'=waterLevel{m ↦ LOW})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=waterLevel(m)∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=waterLevel(m)∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})⇒(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="LEVEL={LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})⇒(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ LOW}"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updatePump/grd2/WD" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<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="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p9,p7,p12,p15,p10,p3,p14,p13,p8,p11,p4,p1,p2,p6,p5,p17,p18">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF∧(pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF))"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updatePump/grd2/THM" 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="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p18,p11,p8,p14,p19,p12,p3,p15,p16,p9,p13,p4,p1,p2,p6,p5,p17,p7,p10">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="m∈dom(pump)"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv10/WD" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p13,p14"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p13,p14"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p1,p8,p11,p4,p5,p10,p9,p2,p6,p7,p13,p14">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF∧(pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF))"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv10/THM" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p13,p14"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p13,p14"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p1,p8,p11,p4,p5,p10,p9,p2,p6,p7,p13,p14">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv11/THM"/>
<org.eventb.core.prProof name="updateWaterLevel/grd2/WD" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p16,p17"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p16,p17"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p18,p19,p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p18,p19,p20,p21"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p22"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p22"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p23"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (LEVEL={LOW,MEDIUM,HIGH})" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p18">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p24">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p22">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p25">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p1,p2,p20,p3,p4,p5,p18,p6,p19,p16,p8,p10,p17,p11,p21,p13,p12,p22,p14">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p22">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p26"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p5,p29"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p14,p10,p3,p12,p13,p8,p11,p4,p1,p2,p6,p5,p16,p17,p18,p19,p20,p21,p22,p29,p26,p30">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p22"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p31">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p26"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p22">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p29" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p32">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p33">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p26"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p14,p10,p3,p12,p13,p8,p11,p4,p1,p2,p6,p5,p16,p17,p18,p19,p20,p21,p22,p26,p29,p30,p33">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p35">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="p36">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p37" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="p26"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p38"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p14,p10,p3,p12,p13,p8,p11,p4,p1,p2,p6,p5,p16,p17,p18,p19,p20,p21,p22,p26,p29,p30,p33,p36,p38">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p22"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p22"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p18"/>
</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.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="MINE⊆{M}"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="¬waterLevel(m)=LOW⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬waterLevel(m)=MEDIUM⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}))))"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬waterLevel(m)=MEDIUM⇒m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}))))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="dom(waterLevel)⊆MINE_SET"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="dom(waterLevel)⊆{M}"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(pump)=MINE"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateWaterLevel/grd2/THM" 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="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p18,p11,p8,p14,p19,p12,p3,p16,p17,p9,p13,p4,p1,p2,p7,p5,p10,p6,p15">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv12/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="m" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF" org.eventb.core.psManual="true">
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p11">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p14">
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p15"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(pump)=MINE)" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p25">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p16"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p17"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p3" org.eventb.core.prInfHyps="p18"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p11" org.eventb.core.prInfHyps="p19"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p6" org.eventb.core.prInfHyps="p20"/>
<org.eventb.core.prHypAction name="FORWARD_INF5" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p21"/>
<org.eventb.core.prHypAction name="FORWARD_INF6" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p22"/>
<org.eventb.core.prHypAction name="FORWARD_INF7" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p23"/>
<org.eventb.core.prHypAction name="FORWARD_INF8" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p24"/>
<org.eventb.core.prHypAction name="DESELECT9" org.eventb.core.prHyps="p13,p8,p3,p11,p6,p9,p4,p1,p2"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m)" org.eventb.core.prGoal="p25" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p26" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p28" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p27"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p29">
<org.eventb.core.prRule name="org.eventb.core.seqprover.isFunGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p29" org.eventb.core.prHyps="p11"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p30">
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="p11">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(pump)=MINE)" org.eventb.core.prGoal="p31" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p32">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p11">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p33">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(pump)=MINE)" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p34">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p13">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p33">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(pump)=MINE)" org.eventb.core.prGoal="p33" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p34">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in goal" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p13">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p35">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(pump)=MINE)" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p34">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps=""/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p36,p37"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p36,p37"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p38,p39,p40,p41"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p38,p39,p40,p41"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p42"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (ONOFF={ON,OFF})" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p43"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p16"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (LEVEL={LOW,MEDIUM,HIGH})" org.eventb.core.prGoal="p34" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p19"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prGoal="p45" org.eventb.core.prHyps="p42">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p47">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p24"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p48">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p49">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p27"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p51">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p13,p8,p3,p11,p10,p6,p9,p4,p1,p2,p16,p17,p18,p19,p20,p21,p22,p23,p24,p27,p36,p37,p38,p39,p40,p41,p42,p43,p44,p46,p49">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p52">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p53">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p27" org.eventb.core.prHyps="p27"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p51">
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (dom(waterLevel)=MINE)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p55">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p55" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p4" org.eventb.core.prHyps="p4"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p4">
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (MINE⊆MINE_SET)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p55">
<org.eventb.core.prRule name="org.eventb.core.seqprover.trueGoal" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p55" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p2" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p2">
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" org.eventb.core.prHyps="p42">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p2" org.eventb.core.prInfHyps="p57"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (dom(waterLevel)=MINE)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p57" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p57"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p51" org.eventb.core.prHyps="p13,p8,p3,p11,p10,p6,p9,p4,p1,p2,p16,p17,p18,p19,p20,p21,p22,p23,p24,p27,p36,p37,p38,p39,p40,p41,p42,p43,p44,p46,p49,p53,p56,p57,p58">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p42"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p2"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p4"/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p42"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p38"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p36"/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p10"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p10"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.2.1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p10"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.2.1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p10"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue="1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</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.prPredRef name=".pred" org.eventb.core.prRef="p10"/>
</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="1.1.0.1"/>
<org.eventb.core.prExprRef name=".subst" org.eventb.core.prRef="e0"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="dom(pump)⊆{M}"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="¬waterLevel(m)=LOW">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="MINE⊆{M}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈dom(pump) → ONOFF"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="¬waterLevel(m)=LOW⇒m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬waterLevel(m)=MEDIUM⇒m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="dom(bell)=dom(pump)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="waterLevel∈dom(pump) → LEVEL"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="methane∈dom(pump) → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="pump∈dom(pump) → {ON,OFF}"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=MEDIUM∨(m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="dom(waterLevel)⊆{M}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="dom(pump)⊆MINE_SET"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM⇒m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="m∈dom(pump)">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒m∈MINE∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="waterLevel∈dom(pump) → {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="∀m⦂MINE_SET·m∈dom(pump)⇒m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="dom(pump)=dom(waterLevel)"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="dom(waterLevel)=dom(pump)"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="dom(methane)=dom(pump)"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈MINE∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="bell∈dom(pump) → BOOL"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH}∧(waterLevel(m)=MEDIUM∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ {LOW,MEDIUM,HIGH})))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="∀m⦂MINE_SET·m∈dom(pump)⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈MINE∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="m∈dom(pump)⇒m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=LOW∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH}∧(¬waterLevel(m)=MEDIUM⇒m∈dom(pump)∧waterLevel∈{M} ⇸ {LOW,MEDIUM,HIGH})">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="waterLevel(m)=LOW∨(m∈MINE∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel(m)=MEDIUM∨(m∈dom(pump)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="MINE"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv12/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p2,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈(∅ ⦂ ℙ(MINE_SET))⇒(∅ ⦂ ℙ(MINE_SET×LEVEL))(m)=LOW∨(∅ ⦂ ℙ(MINE_SET×LEVEL))(m)=MEDIUM∨(∅ ⦂ ℙ(MINE_SET×LEVEL))(m)=HIGH"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateWaterLevel/inv12/INV" org.eventb.core.confidence="0" org.eventb.core.prFresh="m0" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p2,p3"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p2,p3"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p5,p6,p7,p8"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p5,p6,p7,p8"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p9" org.eventb.core.prInfHyps="p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.typeRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees m0)" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p12">
<org.eventb.core.prIdent name="m0" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p13"/>
</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.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="waterLevel'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel'(m)=LOW∨waterLevel'(m)=MEDIUM∨waterLevel'(m)=HIGH"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="LEVEL" org.eventb.core.type="ℙ(LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="m0∈MINE">
<org.eventb.core.prIdent name="m0" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="¬ON=OFF">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(MINE_SET,{M})">
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})">
<org.eventb.core.prIdent name="LEVEL" org.eventb.core.type="ℙ(LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="ONOFF={ON,OFF}">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ONOFF" org.eventb.core.type="ℙ(ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="waterLevel'(m0)=LOW∨waterLevel'(m0)=MEDIUM∨waterLevel'(m0)=HIGH">
<org.eventb.core.prIdent name="m0" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)">
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ONOFF" org.eventb.core.type="ℙ(ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="MINE_SET={M}">
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="m0∈MINE⇒waterLevel'(m0)=LOW∨waterLevel'(m0)=MEDIUM∨waterLevel'(m0)=HIGH">
<org.eventb.core.prIdent name="m0" org.eventb.core.type="MINE_SET"/>
</org.eventb.core.prPred>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/inv12/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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p15,p9,p7,p12,p16,p10,p3,p13,p14,p8,p11,p4,p1,p2,p5,p6">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈{M}⇒(waterLevel{M ↦ LOW})(m)=LOW∨(waterLevel{M ↦ LOW})(m)=MEDIUM∨(waterLevel{M ↦ LOW})(m)=HIGH"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="inv12/THM" 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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p15,p16"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p15,p16"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(LEVEL,{LOW},{MEDIUM},{HIGH}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p7" org.eventb.core.prInfHyps="p17,p18,p19,p20"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p17,p18,p19,p20"/>
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p5,p10,p13,p8,p3,p12,p11,p6,p9,p4,p1,p2,p15,p16,p17,p18,p19,p20">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="pump" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="MINE⊆MINE_SET"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀m⦂MINE_SET·m∈MINE⇒waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>
