<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="MinePump_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" 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="p7,p2,p1,p4,p6,p3,p5">
<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="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="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p5" 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="p7" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="MinePump_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" 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,p4,p7,p3,p6,p5">
<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="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="p3" 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="p4" 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="p5" 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="MinePump_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" 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,p3,p7,p6,p4">
<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="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="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" 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="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="INITIALISATION/MinePump_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/MinePump_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/MinePump_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/MinePump_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.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="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="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="p8" org.eventb.core.prInfHyps="p19,p20,p21,p22"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22"/>
<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="p23"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23"/>
<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="p24"/>
<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="p18">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p15"/>
<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="p1" org.eventb.core.prInfHyps="p27"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p27"/>
<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="p27" org.eventb.core.prInfHyps="p28"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p27"/>
<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="p28" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p29"/>
<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="p29" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in hyp (pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p31,p32"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p30"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p31,p32"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in hyp (pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ OFF})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p33,p34"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p31"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p33,p34"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp (pump'=({m} ⩤ pump)∪{m ↦ ON}∨(pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ OFF}))" org.eventb.core.prHyps="p32">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p35">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p32"/>
<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="p26" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p34" org.eventb.core.prInfHyps="p36"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p34"/>
<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)=ON)" org.eventb.core.prHyps="p33">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p38">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p33"/>
<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="p37" org.eventb.core.prHyps="p38">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p42">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p5,p17,p18,p25,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="HIDE0" org.eventb.core.prHyps="p43"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p44"/>
<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="p42" org.eventb.core.prHyps="p15,p2,p12,p13,p10,p3,p4,p5,p14,p6,p9,p11,p17,p18,p19,p20,p21,p22,p23,p25,p32,p33,p34,p35,p36,p38,p39,p40,p41">
<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.prPredRef name=".pred" org.eventb.core.prRef="p38"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p45">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p33"/>
<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="p37" org.eventb.core.prHyps="p45">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p51">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p35" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p36" org.eventb.core.prInfHyps="p50"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p5,p17,p18,p25,p35,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="HIDE0" org.eventb.core.prHyps="p52"/>
<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="p15,p2,p12,p13,p10,p3,p4,p5,p14,p6,p9,p11,p17,p18,p19,p20,p21,p22,p23,p25,p32,p33,p34,p35,p36,p45,p46,p47,p48,p49,p50">
<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.prPredRef name=".pred" org.eventb.core.prRef="p45"/>
</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="p35"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p45,p53">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p32"/>
<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="p45">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p54">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p17" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p18" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p48"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p5,p17,p18,p25,p33"/>
<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="p52"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p55"/>
<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="p54" org.eventb.core.prHyps="p53">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p56">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p34"/>
<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="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="p56" org.eventb.core.prHyps="p15,p2,p12,p13,p10,p3,p4,p5,p14,p6,p9,p11,p17,p18,p19,p20,p21,p22,p23,p25,p32,p33,p34,p45,p53,p46,p47,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.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p53"/>
</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="p45"/>
</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.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.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="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="p51" org.eventb.core.predicate="({m} ⩤ pump)∪{m ↦ pump(m)}∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="pump'∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="({m} ⩤ pump)∪{m ↦ OFF}∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="pump∈MINE → {ON,OFF}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="pump(m)=OFF∨pump(m)=ON"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="pump(m)=OFF∨pump'=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="pump(m)=ON∨pump(m)=pump(m)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p29" 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="p46" org.eventb.core.predicate="¬pump(m)=OFF"/>
<org.eventb.core.prPred name="p20" 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="p26" org.eventb.core.predicate="pump'∈MINE → {ON,OFF}"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="({m} ⩤ pump)∪{m ↦ ON}∈MINE → {ON,OFF}"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="pump(m)=pump(m)∨({m} ⩤ pump)∪{m ↦ ON}=({m} ⩤ pump)∪{m ↦ pump(m)}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="pump(m)=ON"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m∈dom(pump)"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="(pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p27" 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="p3" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="pump(m)=OFF∨({m} ⩤ pump)∪{m ↦ pump(m)}=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="pump'=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="pump'=({m} ⩤ pump)∪{m ↦ ON}∨(pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="pump(m)=OFF∨pump(m)=pump(m)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="pump(m)=OFF∨(pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="ONOFF={ON,pump(m)}"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="pump'=({m} ⩤ pump)∪{m ↦ pump(m)}"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="pump(m)=OFF"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="¬ON=pump(m)"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="pump(m)=pump(m)∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p30" 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="({m} ⩤ pump)∪{m ↦ ON}∈MINE → {ON,pump(m)}"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="pump(m)=OFF∨({m} ⩤ pump)∪{m ↦ ON}=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="pump'∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="pump∈MINE → {pump(m),OFF}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="pump∈MINE → {ON,pump(m)}"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="pump(m)=OFF∨({m} ⩤ pump)∪{m ↦ OFF}=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="ONOFF={pump(m),OFF}"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p13" 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="p35" org.eventb.core.predicate="pump'=({m} ⩤ pump)∪{m ↦ ON}"/>
</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,p3" 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="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="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.prGoal="p4" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p5">
<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="p6"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p5" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" 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="1" 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="2" org.eventb.core.prGoal="p7">
<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="p7" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p8">
<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="p8" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p9">
<org.eventb.core.prIdent name="pump0'" org.eventb.core.type="ℙ(MINE_SET×ONOFF)"/>
<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="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.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p11">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" 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="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="1" 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.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="1.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.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="p2" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p4" 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="p10" 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="p1" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∀pump'⦂ℙ(MINE_SET×ONOFF)·(pump(m)=OFF∧pump'=pump{m ↦ ON})∨(m∈MINE∧pump∈MINE_SET ⇸ ONOFF)"/>
<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="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="p12" org.eventb.core.predicate="m∈MINE∧pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p5" 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="p11" org.eventb.core.predicate="¬(pump(m)=OFF∧pump0'=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="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<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" 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="p13" org.eventb.core.prInfHyps="p15,p16"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<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="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="p6" org.eventb.core.prInfHyps="p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<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.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="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.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp (pump(m)=ON∨pump(m)=OFF)" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p24">
<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 (pump(m)=ON)" org.eventb.core.prGoal="p22" org.eventb.core.prHyps="p24">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p27">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p26"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p15,p16"/>
<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="p27" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p28">
<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="p28" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<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="p29" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p30">
<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="p30" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="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="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="p12,p1,p10,p11,p9,p2,p3,p4,p14,p5,p8,p15,p16,p17,p18,p19,p20,p21,p24,p25,p26,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.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.1"/>
</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="p24"/>
</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="p4"/>
<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="p22" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37">
<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="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.he" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="he (pump(m)=OFF)" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p36">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p41">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p16" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="DESELECT2" org.eventb.core.prHyps="p15,p16"/>
<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="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.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in goal" 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.autoRewrites:0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" 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.cut" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ah (pump(m)=OFF)" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p45">
<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="p12,p1,p10,p11,p9,p2,p3,p4,p14,p5,p8,p15,p16,p17,p18,p19,p20,p21,p36,p39,p40">
<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="p36" org.eventb.core.prHyps="p14,p5">
<org.eventb.core.prRule name="org.eventb.core.seqprover.hyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="hyp" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="p36"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p14,p5,p36">
<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="p21">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p5" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p5"/>
<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="p39">
<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="org.eventb.core.seqprover.totalDom:2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="total function dom substitution in hyp (dom(pump))" org.eventb.core.prHyps="p12">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p3"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p3"/>
<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="p44" 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.contr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ct hyp (¬(∃pump'·pump'=({m} ⩤ pump)∪{m ↦ ON}))" org.eventb.core.prGoal="p50" org.eventb.core.prHyps="p49">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p51">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p49"/>
<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="p52" org.eventb.core.prHyps="p12,p1,p10,p11,p9,p2,p3,p4,p5,p8,p15,p16,p17,p18,p19,p20,p21,p36,p39,p40,p46,p47,p49,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.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.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="p39"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p21"/>
</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.prString name=".pos" org.eventb.core.prSValue="1.1.1.1.1"/>
</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.prString name=".pos" org.eventb.core.prSValue="0.1.1.1.1"/>
</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="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="p46" 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="p41" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=pump(m)∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=(dom({m ↦ pump(m)}) ⩤ pump)∪{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=(dom({m ↦ ON}) ⩤ pump)∪{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ ON}"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ OFF}"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})⇒(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ ON})"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="¬pump(m)=OFF"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="pump(m)=ON"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="m∈dom(pump)"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p22" 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="p4" org.eventb.core.predicate="pump(m)=ON∨pump(m)=OFF"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="ONOFF={ON,pump(m)}"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p28" 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="p47" org.eventb.core.predicate="pump∈{M} ⇸ {ON,pump(m)}"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ ON})⇒(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=(dom({m ↦ pump(m)}) ⩤ pump)∪{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p27" 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="p31" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=(dom({m ↦ OFF}) ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="pump(m)=OFF"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ OFF})"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="¬ON=pump(m)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=({m} ⩤ pump)∪{m ↦ ON})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=pump{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="ONOFF={pump(m),OFF}"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="¬(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=OFF∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)})∨(∃pump'⦂ℙ(MINE_SET×ONOFF)·pump'=pump{m ↦ OFF})"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="∃pump'⦂ℙ(MINE_SET×ONOFF)·pump(m)=ON∧pump'=({m} ⩤ pump)∪{m ↦ pump(m)}"/>
<org.eventb.core.prExpr name="e0" org.eventb.core.expression="MINE"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateMethane/MinePump_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" 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="p12,p2,p1,p7,p11,p3,p10,p9,p5,p4,p6,p8">
<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="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="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="p6" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="status∈BOOL"/>
<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="p5" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p7" 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="updateWaterLevel/MinePump_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.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="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="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="p8" org.eventb.core.prInfHyps="p19,p20,p21,p22"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22"/>
<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="p6" org.eventb.core.prInfHyps="p23"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23"/>
<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="p24"/>
<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="p19">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p12" org.eventb.core.prInfHyps="p25"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p12"/>
<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="p2" org.eventb.core.prInfHyps="p27"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p2"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p27"/>
<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="p27" org.eventb.core.prInfHyps="p28"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p27"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in hyp ({m ↦ LOW})" org.eventb.core.prHyps="">
<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="HIDE1" org.eventb.core.prHyps="p28"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p29"/>
<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="p29" org.eventb.core.prInfHyps="p30"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p29"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.relOvrRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay=" rewrites in hyp ({m ↦ HIGH})" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p30" org.eventb.core.prInfHyps="p31"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p30"/>
<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.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p31" org.eventb.core.prInfHyps="p32"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p31"/>
<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="p32" org.eventb.core.prInfHyps="p33"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p32"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p33"/>
<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="p33" org.eventb.core.prInfHyps="p34"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p33"/>
<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="p10">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p35">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p10"/>
<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="p26" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p41">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p36"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p37"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p38"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p39"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p34" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p21,p25,p34"/>
<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="p40" org.eventb.core.prInfHyps="p42"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p40"/>
<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="p41" org.eventb.core.prHyps="p15,p1,p12,p13,p9,p3,p4,p10,p7,p5,p11,p14,p17,p18,p19,p20,p21,p22,p23,p25,p34,p35,p36,p37,p38,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.prPredRef name=".pred" org.eventb.core.prRef="p35"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p43">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p10"/>
<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="p26" org.eventb.core.prHyps="p43">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p48">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p44"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p20" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p38"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p46"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p34" org.eventb.core.prInfHyps="p47"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p20,p22,p25,p34"/>
<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="p47" org.eventb.core.prInfHyps="p49"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p47"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp ((waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)}))" org.eventb.core.prHyps="p49">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p50,p51">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p49"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.contrHyps" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ct in hyps (¬waterLevel(m)=HIGH)" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p38"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p52">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p49"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p52">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p53">
<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="p53" org.eventb.core.prHyps="p15,p1,p12,p13,p9,p3,p4,p10,p7,p5,p11,p14,p17,p18,p19,p20,p21,p22,p23,p25,p34,p43,p44,p45,p38,p46,p49,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="p52"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p54">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p49"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})" org.eventb.core.prGoal="p48" org.eventb.core.prHyps="p54">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p55">
<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="p55" org.eventb.core.prHyps="p15,p1,p12,p13,p9,p3,p4,p10,p7,p5,p11,p14,p17,p18,p19,p20,p21,p22,p23,p25,p34,p43,p44,p45,p38,p46,p49,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="p54"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="3" org.eventb.core.prHyps="p35,p51">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p49"/>
<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="p48" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p57">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p44,p45,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="p57" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p59">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p56"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.falseHyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p58"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p35"/>
</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="p43"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prHyps="p50">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p10"/>
<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="p26" org.eventb.core.prHyps="p50">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p64">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p19" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p21" org.eventb.core.prInfHyps="p45"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p61"/>
<org.eventb.core.prHypAction name="FORWARD_INF3" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p62"/>
<org.eventb.core.prHypAction name="FORWARD_INF4" org.eventb.core.prHyps="p34" org.eventb.core.prInfHyps="p63"/>
<org.eventb.core.prHypAction name="DESELECT5" org.eventb.core.prHyps="p19,p21,p22,p25,p34"/>
<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="p63" org.eventb.core.prInfHyps="p65"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p63"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.disjE" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ hyp (waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}))" org.eventb.core.prHyps="p65">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p66">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p65"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})" org.eventb.core.prGoal="p64" org.eventb.core.prHyps="p66">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p67">
<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="p67" org.eventb.core.prHyps="p15,p1,p12,p13,p9,p3,p4,p10,p7,p5,p11,p14,p17,p18,p19,p20,p21,p22,p23,p25,p34,p50,p60,p45,p61,p62,p65,p66">
<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="p66"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prHyps="p43,p52">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p65"/>
<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="p64" org.eventb.core.prHyps="p43">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p68">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p61" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p60,p61,p62"/>
<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.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p56"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.falseHyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p58"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</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.prAnte name="2" org.eventb.core.prHyps="p43,p51">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p65"/>
<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="p64" org.eventb.core.prHyps="p43">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p68">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p61" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p60,p61,p62"/>
<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.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p56"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.falseHyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p58"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</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.prAnte name="3" org.eventb.core.prHyps="p35,p66">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p65"/>
<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="p64" org.eventb.core.prHyps="p35">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p70">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p45" org.eventb.core.prInfHyps="p56"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p20,p60,p45,p62"/>
<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="p70" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p71">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p56" org.eventb.core.prInfHyps="p58"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p56"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.falseHyp" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊥ hyp" org.eventb.core.prHyps="p58"/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p35"/>
</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="p50"/>
</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="3.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="2.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.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.prPredRef name=".pred" org.eventb.core.prRef="p19"/>
</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="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="p51" org.eventb.core.predicate="waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)}"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=(dom({m ↦ HIGH}) ⩤ waterLevel)∪{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p40" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(waterLevel(m)=waterLevel(m)∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p2" 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="p61" org.eventb.core.predicate="¬MEDIUM=waterLevel(m)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="¬waterLevel(m)=waterLevel(m)"/>
<org.eventb.core.prPred name="p70" org.eventb.core.predicate="waterLevel'∈MINE → {waterLevel(m),MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="waterLevel∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW}∨waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH}∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="waterLevel'∈MINE → {waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p34" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="LEVEL={waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p45" org.eventb.core.predicate="¬LOW=waterLevel(m)"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p33" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=(dom({m ↦ MEDIUM}) ⩤ waterLevel)∪{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="¬waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="waterLevel'∈MINE → {waterLevel(m),waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p65" org.eventb.core.predicate="waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p37" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="({m} ⩤ waterLevel)∪{m ↦ LOW}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW}"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="waterLevel∈MINE → {LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="(waterLevel(m)=waterLevel(m)∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=(dom({m ↦ MEDIUM}) ⩤ 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="p64" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p58" org.eventb.core.predicate="⊥"/>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p69" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,waterLevel(m)}"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="waterLevel'∈MINE → {waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p54" org.eventb.core.predicate="waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH}"/>
<org.eventb.core.prPred name="p68" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,waterLevel(m),waterLevel(m)}"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p11" 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="p60" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM})∨(waterLevel(m)=MEDIUM∧waterLevel'=(dom({m ↦ LOW}) ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p55" org.eventb.core.predicate="({m} ⩤ waterLevel)∪{m ↦ HIGH}∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="waterLevel∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p47" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})∨(waterLevel(m)=waterLevel(m)∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ LOW})∨(waterLevel(m)=waterLevel(m)∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ HIGH})∨(waterLevel(m)=LOW∧waterLevel'=({m} ⩤ waterLevel)∪{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="waterLevel'∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="waterLevel'∈MINE → {LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="waterLevel∈MINE → {LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p35" org.eventb.core.predicate="waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p66" org.eventb.core.predicate="waterLevel'=({m} ⩤ waterLevel)∪{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p67" org.eventb.core.predicate="({m} ⩤ waterLevel)∪{m ↦ MEDIUM}∈MINE → {LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="LEVEL={LOW,waterLevel(m),HIGH}"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel'=({m} ⩤ 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="p13" 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="(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="p71" org.eventb.core.predicate="waterLevel'∈MINE → {waterLevel(m),MEDIUM}"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateWaterLevel/act1/WD" org.eventb.core.confidence="1000" org.eventb.core.prFresh="waterLevel0'" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET" 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="p2">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p4">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p2"/>
<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="p5">
<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="p6"/>
<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="p5" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p7">
<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="p7" 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="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.prGoal="p8">
<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="p8" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p9">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<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="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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" 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.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p12">
<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="p12" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p13">
<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="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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p15">
<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="p15" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p16">
<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="p16" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p17">
<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="p17" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p18">
<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="p18" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p19">
<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="p19" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="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="p20" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p21">
<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="p21" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p16">
<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="p16" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p17">
<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="p17" org.eventb.core.prHyps="p3"/>
</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="p22">
<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="p22" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p23">
<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="p23" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p24">
<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="p24" org.eventb.core.prHyps="p3"/>
</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="p25">
<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="p25" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p26">
<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="p26" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p27">
<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="p27" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p28">
<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="p28" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p29">
<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="p29" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p30">
<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="p30" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p31">
<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="p31" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p32">
<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="p32" org.eventb.core.prHyps="p3"/>
</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="p33">
<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="p33" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p34">
<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="p34" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p35">
<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="p35" org.eventb.core.prHyps="p3"/>
</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.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.prAnte name="1" org.eventb.core.prGoal="p36">
<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="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37">
<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="p37" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p38">
<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="p38" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p39">
<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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution 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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution 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.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p42" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="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="p43" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" 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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution 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="p42">
<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="p42" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="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="p43" org.eventb.core.prHyps="p3"/>
</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="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="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="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="p50" org.eventb.core.prHyps="p3"/>
</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="p51">
<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="p51" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p52">
<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="p52" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p53">
<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="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p54">
<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="p54" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p55">
<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="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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution 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.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p57" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p58">
<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="p58" org.eventb.core.prHyps="p3"/>
</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="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="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p61">
<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="p61" org.eventb.core.prHyps="p3"/>
</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.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.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.prAnte name="1" org.eventb.core.prHyps="p62">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p2"/>
<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="p5">
<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="p6"/>
<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="p5" org.eventb.core.prHyps="p62">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p63">
<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="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.conj" 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="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="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.prGoal="p65">
<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="p65" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p66">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<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="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="p11">
<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="p11" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p12">
<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="p12" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" 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="p70">
<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="p70" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" 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="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p72">
<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="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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p73" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p74">
<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="p74" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p75">
<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="p75" org.eventb.core.prHyps="p3"/>
</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.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="1"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p76">
<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="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.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p77" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p78">
<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="p78" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p79">
<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="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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p80" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p81">
<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="p81" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p82">
<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="p82" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p83">
<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="p83" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p84">
<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="p84" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p85">
<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="p85" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p86">
<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="p86" org.eventb.core.prHyps="p3"/>
</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.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="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.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prPredRef name=".pred" org.eventb.core.prRef="p62"/>
</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="2" org.eventb.core.prHyps="p87">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p2"/>
<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="p5">
<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="p6"/>
<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="p5" org.eventb.core.prHyps="p87">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p88">
<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="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.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p89" 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="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.prGoal="p90">
<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="p90" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p91">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<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="p91" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p37">
<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="p37" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p38">
<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="p38" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p92">
<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="p92" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p93">
<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="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.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p94" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p95">
<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="p95" org.eventb.core.prHyps="p3"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p96">
<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="p96" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p97">
<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="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.andOrDistRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ / ∨ distribution in goal" org.eventb.core.prGoal="p98" 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="p42">
<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="p42" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="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="p43" org.eventb.core.prHyps="p3"/>
</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="p99">
<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="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.hypOr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ goal in hyp" org.eventb.core.prGoal="p100" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p101">
<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="p101" org.eventb.core.prHyps="p3"/>
</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.prAnte name="1" 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="p103">
<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="p103" org.eventb.core.prHyps="p1"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p104">
<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="p104" org.eventb.core.prHyps="p3"/>
</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="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="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="1"/>
</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="p87"/>
</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="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<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'=waterLevel{m ↦ waterLevel(m)}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p72" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ LOW}∨(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<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="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p80" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p102" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ LOW}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p64" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))))"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p32" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel(m)=MEDIUM∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p95" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="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="p19" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·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 ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))))"/>
<org.eventb.core.prPred name="p86" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel0'=waterLevel{m ↦ HIGH}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)"/>
<org.eventb.core.prPred name="p93" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<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)=HIGH∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel0'=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="p96" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<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="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ HIGH}∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p87" org.eventb.core.predicate="waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p30" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel(m)=HIGH∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" 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="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="p67" org.eventb.core.predicate="waterLevel(m)=HIGH∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p36" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<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="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=waterLevel(m)∧waterLevel'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=waterLevel(m)∧waterLevel'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))))"/>
<org.eventb.core.prPred name="p75" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel0'=waterLevel{m ↦ HIGH}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=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="p94" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨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="p85" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel0'=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="p17" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p79" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p42" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨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="p25" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨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="p50" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ HIGH}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="waterLevel(m)=HIGH∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<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∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨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="p16" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p77" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨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="p58" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel(m)=MEDIUM∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p70" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ LOW}∨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="p90" org.eventb.core.predicate="∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·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 ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))"/>
<org.eventb.core.prPred name="p44" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<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'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p104" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ LOW}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p53" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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∨(waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<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="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel(m)=MEDIUM∨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="p34" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=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="p29" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨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="p24" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ HIGH}∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ HIGH}∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p66" org.eventb.core.predicate="(waterLevel(m)=HIGH∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<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="waterLevel0'=waterLevel{m ↦ MEDIUM}∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<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="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p56" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<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'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(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="p45" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="waterLevel(m)=HIGH∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<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="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel0'=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="p60" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=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="p97" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨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="p46" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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∨waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))">
<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'=waterLevel{m ↦ MEDIUM}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p84" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="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 ↦ waterLevel(m)})∨(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="p11" org.eventb.core.predicate="waterLevel(m)=HIGH∨m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨waterLevel(m)=MEDIUM∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)"/>
<org.eventb.core.prPred name="p88" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(∀waterLevel'⦂ℙ(MINE_SET×LEVEL)·(waterLevel(m)=waterLevel(m)∧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 ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))))"/>
<org.eventb.core.prPred name="p101" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p57" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel(m)=MEDIUM∨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="p76" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ LOW}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧(waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p81" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨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="p103" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ LOW}∨(waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨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="p54" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<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∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p38" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p48" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel0'=waterLevel{m ↦ HIGH}∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL)">
<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="waterLevel(m)=HIGH∨waterLevel0'=waterLevel{m ↦ waterLevel(m)}∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p92" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ LOW})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL∧((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ waterLevel(m)})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))))">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p43" org.eventb.core.predicate="waterLevel0'=waterLevel{m ↦ MEDIUM}∨waterLevel(m)=MEDIUM∨waterLevel∈MINE_SET ⇸ LEVEL">
<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="waterLevel(m)=HIGH∨waterLevel(m)=MEDIUM∨((waterLevel(m)=MEDIUM∧waterLevel0'=waterLevel{m ↦ HIGH})∨(m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL))">
<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'=waterLevel{m ↦ waterLevel(m)}∨waterLevel0'=waterLevel{m ↦ LOW}∨waterLevel∈MINE_SET ⇸ LEVEL">
<org.eventb.core.prIdent name="waterLevel0'" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
</org.eventb.core.prPred>
</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" 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="p9">
<org.eventb.core.prAnte name="0" org.eventb.core.prHyps="p15">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p9"/>
<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="p16">
<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="p17"/>
<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="p16" org.eventb.core.prHyps="p15">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p18">
<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="p18" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="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(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="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(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="p22,p23,p24,p25"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p22,p23,p24,p25"/>
<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="p26"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p26"/>
<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="p15">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p27"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p28"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p22,p23,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="p19" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p30">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p30" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p32" org.eventb.core.prHyps="p31">
<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="org.eventb.core.seqprover.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ in goal" org.eventb.core.prGoal="p35" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p36">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p36" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p37">
<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="p14,p1,p11,p12,p8,p2,p3,p9,p6,p4,p10,p15,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p31,p34,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=""/>
</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="p15"/>
</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="p15"/>
</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="p39">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="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(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="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(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="p22,p23,p24,p25"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p22,p23,p24,p25"/>
<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="p26"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p26"/>
<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="p16">
<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="p17"/>
<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="p16" org.eventb.core.prHyps="p39">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p42">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p40"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p23" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p29"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p22,p23,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="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.disjToImplRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∨ to ⇒ 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.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p44" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p46" org.eventb.core.prHyps="p45">
<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="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.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p47" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p49" org.eventb.core.prHyps="p48">
<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="p49" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p50">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" 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="p52" org.eventb.core.prHyps="p51">
<org.eventb.core.prRule name="org.eventb.core.seqprover.contr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ct hyp (¬(∃waterLevel'·waterLevel'=waterLevel{m ↦ LOW}))" org.eventb.core.prGoal="p52" org.eventb.core.prHyps="p48">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p53">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p48"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.contr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ct hyp (¬(∃waterLevel'·waterLevel'=waterLevel{m ↦ HIGH}))" org.eventb.core.prGoal="p54" org.eventb.core.prHyps="p51">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p55" org.eventb.core.prHyps="p48">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="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="p55" org.eventb.core.prHyps="p14,p1,p11,p12,p8,p2,p3,p9,p6,p4,p10,p39,p20,p21,p22,p23,p24,p25,p26,p40,p41,p29,p45,p48,p51,p53">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.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.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.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="p56">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p9"/>
<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="p16">
<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="p17"/>
<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="p16" org.eventb.core.prHyps="p56">
<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.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="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="p13" org.eventb.core.prInfHyps="p20,p21"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="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(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="p22,p23,p24,p25"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p22,p23,p24,p25"/>
<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="p26"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p26"/>
<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.prHyps="p56">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p22" org.eventb.core.prInfHyps="p59"/>
<org.eventb.core.prHypAction name="FORWARD_INF1" org.eventb.core.prHyps="p24" org.eventb.core.prInfHyps="p41"/>
<org.eventb.core.prHypAction name="FORWARD_INF2" org.eventb.core.prHyps="p25" org.eventb.core.prInfHyps="p60"/>
<org.eventb.core.prHypAction name="DESELECT3" org.eventb.core.prHyps="p22,p24,p25"/>
<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="p58" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p61">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p61" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p63" org.eventb.core.prHyps="p62">
<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="p66" 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="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.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p67" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p68" org.eventb.core.prHyps="p34">
<org.eventb.core.prRule name="org.eventb.core.seqprover.contr" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ct hyp (¬(∃waterLevel'·waterLevel'=waterLevel{m ↦ MEDIUM}))" org.eventb.core.prGoal="p68" org.eventb.core.prHyps="p62">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p38" org.eventb.core.prHyps="p69">
<org.eventb.core.prHypAction name="DESELECT0" org.eventb.core.prHyps="p62"/>
<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="p14,p1,p11,p12,p8,p2,p3,p9,p6,p4,p10,p56,p20,p21,p22,p23,p24,p25,p26,p59,p41,p60,p62,p65,p34,p69">
<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.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="p56"/>
</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="p56"/>
</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="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="p38" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p39" org.eventb.core.predicate="waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p51" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ HIGH})"/>
<org.eventb.core.prPred name="p61" 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="p60" org.eventb.core.predicate="¬MEDIUM=waterLevel(m)"/>
<org.eventb.core.prPred name="p19" 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="p4" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p63" org.eventb.core.predicate="(∃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="p32" 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="p6" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p33" 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="p34" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p43" 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="p9" org.eventb.core.predicate="waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p27" org.eventb.core.predicate="LEVEL={waterLevel(m),MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p41" org.eventb.core.predicate="¬LOW=waterLevel(m)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p29" org.eventb.core.predicate="¬waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p57" 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="p1" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p28" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p42" 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="p65" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ LOW})"/>
<org.eventb.core.prPred name="p18" 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="p23" 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="p56" org.eventb.core.predicate="waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p31" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p49" org.eventb.core.predicate="(∃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="p17" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p46" org.eventb.core.predicate="(∃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="p53" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ waterLevel(m)})"/>
<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="p36" 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="p24" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p52" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ waterLevel(m)}"/>
<org.eventb.core.prPred name="p69" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p67" org.eventb.core.predicate="¬(∃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="p66" org.eventb.core.predicate="(∃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="p21" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p16" 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="p55" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ HIGH}"/>
<org.eventb.core.prPred name="p10" 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="p47" org.eventb.core.predicate="¬(∃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="p45" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=HIGH∧waterLevel'=waterLevel{m ↦ waterLevel(m)})"/>
<org.eventb.core.prPred name="p59" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,waterLevel(m)}"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p50" org.eventb.core.predicate="¬(∃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="p48" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ LOW})"/>
<org.eventb.core.prPred name="p44" 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="p58" 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="p35" 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="p37" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=MEDIUM∧waterLevel'=waterLevel{m ↦ HIGH})"/>
<org.eventb.core.prPred name="p68" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel(m)=LOW∧waterLevel'=waterLevel{m ↦ MEDIUM}"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p62" org.eventb.core.predicate="¬(∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ MEDIUM})"/>
<org.eventb.core.prPred name="p20" 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="p64" org.eventb.core.predicate="¬(∃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="p11" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p30" 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="p54" org.eventb.core.predicate="∃waterLevel'⦂ℙ(MINE_SET×LEVEL)·waterLevel'=waterLevel{m ↦ LOW}"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/MinePump_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" 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,p2,p1,p6,p9,p3,p8,p7,p5,p4,p11">
<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="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="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="pump{M ↦ OFF}∈{M} → ONOFF"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=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.prPred name="p11" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/MinePump_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" 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,p2,p1,p6,p9,p3,p8,p7,p5,p4,p11">
<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="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="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=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.prPred name="p11" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="methane{M ↦ FALSE}∈{M} → BOOL"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/MinePump_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" 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,p2,p1,p6,p9,p3,p8,p7,p5,p4,p11">
<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="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="p0" org.eventb.core.predicate="waterLevel{M ↦ LOW}∈{M} → LEVEL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(waterLevel)=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.prPred name="p11" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
</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" 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="p11" org.eventb.core.prInfHyps="p12,p13"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p12,p13"/>
<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="p2,p1,p7,p10,p3,p8,p9,p4,p5,p6,p12,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.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="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="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p13" 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="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p7" 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="p9" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<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" 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="p13" org.eventb.core.prInfHyps="p15,p16"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p15,p16"/>
<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="p6,p5,p9,p14,p1,p10,p11,p8,p2,p3,p12,p4,p7,p15,p16">
<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="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="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p3" 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="p16" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="pump∈MINE_SET ⇸ ONOFF"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="pump(m)=ON∨(m∈dom(pump)∧pump∈MINE_SET ⇸ ONOFF)"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="dom(pump)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="pump∈MINE → ONOFF"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="m∈dom(pump)"/>
</org.eventb.core.prProof>
<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" org.eventb.core.prSets="LEVEL,MINE_SET" org.eventb.core.psManual="true">
<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="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p3">
<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="p4"/>
<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="p3" org.eventb.core.prHyps="p2">
<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.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.prAnte name="1" org.eventb.core.prGoal="p5">
<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="p5" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p6">
<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="p4"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p6" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="p7">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p3">
<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="p3" org.eventb.core.prHyps="p2">
<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.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.prAnte name="1" org.eventb.core.prGoal="p5">
<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="p5" org.eventb.core.prHyps="p2"/>
</org.eventb.core.prAnte>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p9">
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="p10">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p3">
<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="p3" org.eventb.core.prHyps="p2">
<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.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.prAnte name="1" org.eventb.core.prGoal="p5">
<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="p5" 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.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="2"/>
</org.eventb.core.prRule>
<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="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="waterLevel" org.eventb.core.type="ℙ(MINE_SET×LEVEL)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p6" 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="p1" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬waterLevel(m)=LOW"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="waterLevel∈MINE → LEVEL"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="¬waterLevel(m)=MEDIUM⇒m∈dom(waterLevel)∧waterLevel∈MINE_SET ⇸ LEVEL"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="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∈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.prExpr name="e0" org.eventb.core.expression="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" 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,p9,p13,p1,p12,p11,p8,p2,p3,p6,p4,p10,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="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="p19" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(waterLevel)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="waterLevel∈MINE_SET ⇸ LEVEL"/>
<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="m∈dom(waterLevel)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="waterLevel(m)=LOW∨waterLevel(m)=MEDIUM∨waterLevel(m)=HIGH"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p10" 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="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>
