<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="MinePump_inv7/THM" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6" 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="p6,p2,p1,p5,p4,p3">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</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" 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,p3,p1,p6,p5,p4,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/MinePump_inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3,p2,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(MINE_SET×BOOL))∈(∅ ⦂ ℙ(MINE_SET)) → BOOL"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/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="updateBell/MinePump_inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9,p10" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p10,p3,p1,p8,p5,p4,p2,p6,p7,p9">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="status" org.eventb.core.type="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="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="bell{m ↦ status}∈MINE → BOOL"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="status∈BOOL"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateBell/act1/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="bell0'" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8" 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="p8" org.eventb.core.prInfHyps="p9,p10"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p9,p10"/>
<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="p3" org.eventb.core.prInfHyps="p11,p12,p13,p14"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p3"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p11,p12,p13,p14"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p1" org.eventb.core.prInfHyps="p15"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p15"/>
<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.eq" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh (MINE_SET={M})" 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.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" 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="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p19" org.eventb.core.prHyps="p4,p5,p2,p6,p7,p9,p10,p11,p12,p13,p14,p15">
<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="p20"/>
<org.eventb.core.prAnte name="2" org.eventb.core.prGoal="p21">
<org.eventb.core.prRule name="org.eventb.core.seqprover.allI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∀ goal (frees bell0')" org.eventb.core.prGoal="p21" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p22">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.impI" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⇒ goal" org.eventb.core.prGoal="p22" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="p23">
<org.eventb.core.prRule name="org.eventb.core.seqprover.conj" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p24" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0" org.eventb.core.prGoal="p25"/>
<org.eventb.core.prAnte name="1" org.eventb.core.prGoal="p26"/>
</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="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.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
<org.eventb.core.prString name=".pos" org.eventb.core.prSValue=""/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prPred name="p23" org.eventb.core.predicate="methane(m)=TRUE"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="¬LOW=HIGH"/>
<org.eventb.core.prPred name="p22" org.eventb.core.predicate="methane(m)=TRUE⇒m∈dom(bell0')∧bell0'∈{M} ⇸ BOOL">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p21" org.eventb.core.predicate="∀bell'⦂ℙ(MINE_SET×BOOL)·methane(m)=TRUE⇒m∈dom(bell')∧bell'∈{M} ⇸ BOOL"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="¬ON=OFF"/>
<org.eventb.core.prPred name="p19" org.eventb.core.predicate="m∈dom(methane)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="¬MEDIUM=HIGH"/>
<org.eventb.core.prPred name="p16" org.eventb.core.predicate="m∈dom(methane)∧methane∈MINE_SET ⇸ BOOL∧(∀bell'⦂ℙ(MINE_SET×BOOL)·methane(m)=TRUE⇒m∈dom(bell')∧bell'∈MINE_SET ⇸ BOOL)"/>
<org.eventb.core.prPred name="p18" org.eventb.core.predicate="m∈dom(methane)∧methane∈{M} ⇸ BOOL∧(∀bell'⦂ℙ(MINE_SET×BOOL)·methane(m)=TRUE⇒m∈dom(bell')∧bell'∈{M} ⇸ BOOL)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="MINE_SET={M}"/>
<org.eventb.core.prPred name="p25" org.eventb.core.predicate="m∈dom(bell0')">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="∀bell'⦂ℙ(MINE_SET×BOOL)·m∈dom(methane)∧methane∈MINE_SET ⇸ BOOL∧(methane(m)=TRUE⇒m∈dom(bell')∧bell'∈MINE_SET ⇸ BOOL)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}"/>
<org.eventb.core.prPred name="p26" org.eventb.core.predicate="bell0'∈{M} ⇸ BOOL">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="¬LOW=MEDIUM"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="ONOFF={ON,OFF}"/>
<org.eventb.core.prPred name="p24" org.eventb.core.predicate="m∈dom(bell0')∧bell0'∈{M} ⇸ BOOL">
<org.eventb.core.prIdent name="bell0'" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p17" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p20" org.eventb.core.predicate="methane∈{M} ⇸ BOOL"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="updateBell/act1/FIS" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prHyps="">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(ONOFF,{ON},{OFF}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p0" org.eventb.core.prInfHyps="p1,p2"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p0"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p1,p2"/>
<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="p3" org.eventb.core.prInfHyps="p4,p5,p6,p7"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p3"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p4,p5,p6,p7"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(MINE_SET,{M}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p8" org.eventb.core.prInfHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p9"/>
<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="p10"/>
</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.prPred name="p5" org.eventb.core.predicate="¬LOW=MEDIUM">
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="¬ON=OFF">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(MINE_SET,{M})">
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LEVEL" org.eventb.core.type="ℙ(LEVEL)"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="¬LOW=HIGH">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ONOFF={ON,OFF}">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ONOFF" org.eventb.core.type="ℙ(ONOFF)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬MEDIUM=HIGH">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="LEVEL={LOW,MEDIUM,HIGH}">
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LEVEL" org.eventb.core.type="ℙ(LEVEL)"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)">
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="MINE_SET={M}">
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MINE_SET" org.eventb.core.type="ℙ(MINE_SET)"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})">
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ONOFF" org.eventb.core.type="ℙ(ONOFF)"/>
</org.eventb.core.prPred>
</org.eventb.core.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" org.eventb.core.prSets="LEVEL,MINE_SET,ONOFF">
<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p10,p3,p1,p8,p5,p4,p2,p6,p7,p9">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="m" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="status" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="methane{m ↦ status}∈MINE → BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="m∈MINE"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="status∈BOOL"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="addMine/MinePump_inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5,p6,p7,p8,p9" 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,p3,p1,p7,p5,p4,p2,p6,p9">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="MINE=(∅ ⦂ ℙ(MINE_SET))"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="bell{M ↦ FALSE}∈{M} → BOOL"/>
</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" 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,p3,p1,p7,p5,p4,p2,p6,p9">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="HIGH" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="LOW" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="M" org.eventb.core.type="MINE_SET"/>
<org.eventb.core.prIdent name="MEDIUM" org.eventb.core.type="LEVEL"/>
<org.eventb.core.prIdent name="MINE" org.eventb.core.type="ℙ(MINE_SET)"/>
<org.eventb.core.prIdent name="OFF" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="ON" org.eventb.core.type="ONOFF"/>
<org.eventb.core.prIdent name="bell" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prIdent name="methane" org.eventb.core.type="ℙ(MINE_SET×BOOL)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="partition(MINE_SET,{M})"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="dom(bell)=MINE"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="partition(LEVEL,{LOW},{MEDIUM},{HIGH})"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="bell∈MINE → BOOL"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="methane∈MINE → BOOL"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="dom(methane)=MINE"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="MINE∈ℙ(MINE_SET)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="partition(ONOFF,{ON},{OFF})"/>
<org.eventb.core.prPred name="p9" 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.prFile>
