<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.comment="introduces card and cash in atm " org.eventb.core.configuration="ch.ethz.eventb.decomposition.mchBase" version="5">
<org.eventb.core.refinesMachine name="'" org.eventb.core.target="Deposit_0"/>
<org.eventb.core.seesContext name="3" org.eventb.core.target="Deposit_CO1"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="'" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="bal"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name="(" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="validCard"/>
<org.eventb.core.variable ch.ethz.eventb.decomposition.nature="1" name=")" org.eventb.core.comment="Shared variable, DO NOT REFINE" org.eventb.core.identifier="cardAcct"/>
<org.eventb.core.event name="0" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION">
<org.eventb.core.action name="(" org.eventb.core.assignment="atmCash ≔ ATM × {0}" org.eventb.core.label="act6"/>
<org.eventb.core.action name=")" org.eventb.core.assignment="cardInAtm ≔ ∅" org.eventb.core.label="act7"/>
</org.eventb.core.event>
<org.eventb.core.event name="2" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="Deposit">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="Deposit"/>
<org.eventb.core.action name="(" org.eventb.core.assignment="atmCash(a) ≔ atmCash(a) + am" org.eventb.core.label="act2"/>
<org.eventb.core.guard name=")" org.eventb.core.label="grd6" org.eventb.core.predicate="a ∈ ATM"/>
<org.eventb.core.guard name="+" org.eventb.core.label="grd7" org.eventb.core.predicate="a ∈ dom(atmCash)"/>
<org.eventb.core.parameter name="*" org.eventb.core.identifier="a"/>
<org.eventb.core.guard name="-" org.eventb.core.label="grd8" org.eventb.core.predicate="a ∈ dom(cardInAtm)"/>
<org.eventb.core.guard name="," org.eventb.core.label="grd9" org.eventb.core.predicate="cardInAtm(a) = c"/>
</org.eventb.core.event>
<org.eventb.core.event ch.ethz.eventb.decomposition.external="true" name="1" org.eventb.core.comment="External event, DO NOT REFINE" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="Transfer">
<org.eventb.core.refinesEvent name="'" org.eventb.core.target="Transfer"/>
</org.eventb.core.event>
<org.eventb.core.variable name="6" org.eventb.core.identifier="atmCash"/>
<org.eventb.core.invariant name="7" org.eventb.core.label="inv2" org.eventb.core.predicate="atmCash ∈ ATM → ℕ"/>
<org.eventb.core.variable name="8" org.eventb.core.identifier="cardInAtm"/>
<org.eventb.core.invariant name="9" org.eventb.core.label="inv3" org.eventb.core.predicate="cardInAtm ∈ ATM ⇸ CARD"/>
</org.eventb.core.machineFile>
