<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd">
<org.eventb.core.scSeesContext name="'" org.eventb.core.scTarget="/queue-v1/qctx.bcc" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.seesContext#0"/>
<org.eventb.core.scInternalContext name="qctx">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="axm1" org.eventb.core.predicate="MAXLEN∈ℕ" org.eventb.core.source="/queue-v1/qctx.buc|org.eventb.core.contextFile#qctx|org.eventb.core.axiom#(" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="MAXLEN" org.eventb.core.source="/queue-v1/qctx.buc|org.eventb.core.contextFile#qctx|org.eventb.core.constant#'" org.eventb.core.type="ℤ"/>
</org.eventb.core.scInternalContext>
<org.eventb.core.scInvariant name="qcty" org.eventb.core.label="inv1" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#," org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qctz" org.eventb.core.label="inv2" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#-" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qct{" org.eventb.core.label="inv3" org.eventb.core.predicate="len=end − beg" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#." org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qct|" org.eventb.core.label="inv4" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qct}" org.eventb.core.label="inv5" org.eventb.core.predicate="retval∈ℤ" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#4" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="beg" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#)" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="end" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#*" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="len" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#+" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="qlist" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#(" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.scVariable name="retval" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#3" org.eventb.core.type="ℤ"/>
<org.eventb.core.scEvent name="retvam" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#'">
<org.eventb.core.scAction name="'" org.eventb.core.assignment="beg ≔ 0" org.eventb.core.label="act1" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#'|org.eventb.core.action#'"/>
<org.eventb.core.scAction name="(" org.eventb.core.assignment="end ≔ 0" org.eventb.core.label="act2" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#'|org.eventb.core.action#("/>
<org.eventb.core.scAction name=")" org.eventb.core.assignment="len ≔ 0" org.eventb.core.label="act3" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#'|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="*" org.eventb.core.assignment="retval ≔ 0" org.eventb.core.label="act5" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#'|org.eventb.core.action#+"/>
<org.eventb.core.scAction name="+" org.eventb.core.assignment="qlist ≔ λn⦂ℤ·n∈ℕ ∣ 0" org.eventb.core.label="act4" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#'|org.eventb.core.action#*"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="retvan" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="enq" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#1">
<org.eventb.core.scGuard name="'" org.eventb.core.label="grd1" org.eventb.core.predicate="newval∈ℤ∧len&lt;MAXLEN" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#1|org.eventb.core.guard#'" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="newval" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#1|org.eventb.core.parameter#(" org.eventb.core.type="ℤ"/>
<org.eventb.core.scAction name="newvam" org.eventb.core.assignment="qlist ≔ qlist{end ↦ newval}" org.eventb.core.label="act1" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#1|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="newvan" org.eventb.core.assignment="end ≔ end+1" org.eventb.core.label="act2" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#1|org.eventb.core.action#*"/>
<org.eventb.core.scAction name="newvao" org.eventb.core.assignment="len ≔ len+1" org.eventb.core.label="act3" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#1|org.eventb.core.action#+"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="retvao" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="deq" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#2">
<org.eventb.core.scGuard name="'" org.eventb.core.label="grd1" org.eventb.core.predicate="len&gt;0" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#2|org.eventb.core.guard#'" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="(" org.eventb.core.assignment="retval ≔ qlist(beg)" org.eventb.core.label="act1" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#2|org.eventb.core.action#("/>
<org.eventb.core.scAction name=")" org.eventb.core.assignment="beg ≔ beg+1" org.eventb.core.label="act2" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#2|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="*" org.eventb.core.assignment="len ≔ len − 1" org.eventb.core.label="act3" org.eventb.core.source="/queue-v1/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.event#2|org.eventb.core.action#*"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
