<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" version="5">
<org.eventb.core.refinesMachine name="'" org.eventb.core.target="PumpController"/>
<org.eventb.core.seesContext name="(" org.eventb.core.target="MineContext"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="set1" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="methane"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="set2" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="waterLevel"/>
<org.eventb.core.variable name="set3" org.eventb.core.comment="Private variable" org.eventb.core.identifier="pump"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="set4" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="MINE"/>
<org.eventb.core.event name="evt1" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION"/>
<org.eventb.core.event name="evt9" org.eventb.core.comment="Internal Event" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="high_water_detected">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="updatePump"/>
<org.eventb.core.parameter name=")" org.eventb.core.identifier="m"/>
<org.eventb.core.guard name="*" org.eventb.core.label="grd2" org.eventb.core.predicate="m ∈ MINE"/>
<org.eventb.core.action name="+" org.eventb.core.assignment="pump(m) ≔ ON" org.eventb.core.label="act1"/>
<org.eventb.core.guard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="waterLevel(m) = HIGH"/>
<org.eventb.core.guard name="/" org.eventb.core.label="grd3" org.eventb.core.predicate="methane(m) = FALSE"/>
<org.eventb.core.guard name="0" org.eventb.core.label="grd4" org.eventb.core.predicate="pump(m) = OFF"/>
</org.eventb.core.event>
<org.eventb.core.event name="evt10" org.eventb.core.comment="Internal Event" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="low_water_detected">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="updatePump"/>
<org.eventb.core.parameter name="(" org.eventb.core.identifier="m"/>
<org.eventb.core.guard name=")" org.eventb.core.label="grd1" org.eventb.core.predicate="m ∈ MINE"/>
<org.eventb.core.guard name="*" org.eventb.core.label="grd2" org.eventb.core.predicate="waterLevel(m) = LOW"/>
<org.eventb.core.action name="," org.eventb.core.assignment="pump(m) ≔ OFF" org.eventb.core.label="act1"/>
<org.eventb.core.guard name="-" org.eventb.core.label="grd3" org.eventb.core.predicate="pump(m) = ON"/>
</org.eventb.core.event>
<org.eventb.core.event name="evt11" org.eventb.core.comment="Internal Event" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="methane_detected">
<org.eventb.core.parameter name="'" org.eventb.core.identifier="m"/>
<org.eventb.core.refinesEvent name="(" org.eventb.core.target="updatePump"/>
<org.eventb.core.guard name="element1" org.eventb.core.label="grd1" org.eventb.core.predicate="m ∈ MINE"/>
<org.eventb.core.guard name="element3" org.eventb.core.label="grd3" org.eventb.core.predicate="pump(m) = ON"/>
<org.eventb.core.guard name="element4" org.eventb.core.label="grd4" org.eventb.core.predicate="methane(m) = TRUE"/>
<org.eventb.core.action name="element5" org.eventb.core.assignment="pump(m) ≔ OFF" org.eventb.core.label="act1"/>
</org.eventb.core.event>
<org.eventb.core.event ch.ethz.eventb.decomposition.external="true" name="evt7" org.eventb.core.comment="External event, DO NOT REFINE" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="updateMethane">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="updateMethane"/>
</org.eventb.core.event>
<org.eventb.core.event ch.ethz.eventb.decomposition.external="true" name="evt8" org.eventb.core.comment="External event, DO NOT REFINE" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="updateWaterLevel">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="updateWaterLevel"/>
</org.eventb.core.event>
<org.eventb.core.event ch.ethz.eventb.decomposition.external="true" name="evt5" org.eventb.core.comment="External event, DO NOT REFINE" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="addMine">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="addMine"/>
</org.eventb.core.event>
</org.eventb.core.machineFile>
