<?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.scRefinesMachine name="'" org.eventb.core.scTarget="/myqueue/queue.bcm" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.refinesMachine#("/>
<org.eventb.core.scSeesContext name="(" org.eventb.core.scTarget="/myqueue/qctx.bcc" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.seesContext#)"/>
<org.eventb.core.scInternalContext name="qctx">
<org.eventb.core.scAxiom name="'" org.eventb.core.label="axm1" org.eventb.core.predicate="MAXLEN∈ℕ1" org.eventb.core.source="/myqueue/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="/myqueue/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="/myqueue/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="/myqueue/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="/myqueue/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="/myqueue/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="inv6" org.eventb.core.predicate="len&gt;0⇒beg∈dom(qlist)" org.eventb.core.source="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#5" 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="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.invariant#3" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu'" org.eventb.core.label="inv1" org.eventb.core.predicate="beg2∈ℕ∧end2∈ℕ∧len2∈ℕ" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#\/" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu(" org.eventb.core.label="inv2" org.eventb.core.predicate="qlist2∈ℕ ⇸ ℤ" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#0" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu)" org.eventb.core.label="inv3" org.eventb.core.predicate="beg2≤end2⇒len2=end2 − beg2" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#1" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu*" org.eventb.core.label="inv4" org.eventb.core.predicate="beg2&gt;end2⇒len2=MAXLEN − beg2+end2" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#2" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu+" org.eventb.core.label="inv5" org.eventb.core.predicate="beg2≤end2⇒beg2 ‥ end2 − 1=dom(qlist2)" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#3" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu," org.eventb.core.label="inv6" org.eventb.core.predicate="beg2&gt;end2⇒beg2 ‥ MAXLEN − 1∪0 ‥ end2 − 1=dom(qlist2)" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#4" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu-" org.eventb.core.label="inv7" org.eventb.core.predicate="retval2∈ℤ" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#5" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu." org.eventb.core.label="inv8" org.eventb.core.predicate="beg2∈0 ‥ MAXLEN − 1∧end2∈0 ‥ MAXLEN − 1" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#&gt;" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu/" org.eventb.core.label="inv9" org.eventb.core.predicate="len2&gt;0⇒beg2∈dom(qlist2)" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#@" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu0" org.eventb.core.label="glue1" org.eventb.core.predicate="len2=len" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#6" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu1" org.eventb.core.label="glue2" org.eventb.core.predicate="beg2≤end2⇒(∀n⦂ℤ·n∈ℕ⇒(n&lt;len⇒qlist2(beg2+n)=qlist(beg+n)))" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#7" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu2" org.eventb.core.label="glue3" org.eventb.core.predicate="beg2&gt;end2⇒(∀n⦂ℤ·n∈ℕ⇒(n&lt;MAXLEN − beg2⇒qlist2(beg2+n)=qlist(beg+n)))" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#8" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu3" org.eventb.core.label="glue4" org.eventb.core.predicate="beg2&gt;end2⇒(∀n⦂ℤ·n∈ℕ⇒(n&lt;end2⇒qlist2(n)=qlist(beg+(MAXLEN − beg2)+n)))" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#;" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="qcu4" org.eventb.core.label="glue5" org.eventb.core.predicate="retval2=retval" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.invariant#=" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="beg" org.eventb.core.abstract="true" org.eventb.core.concrete="false" org.eventb.core.source="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#)" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="beg2" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.variable#*" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="end" org.eventb.core.abstract="true" org.eventb.core.concrete="false" org.eventb.core.source="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#*" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="end2" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.variable#+" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="len" org.eventb.core.abstract="true" org.eventb.core.concrete="false" org.eventb.core.source="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#+" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="len2" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.variable#," org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="qlist" org.eventb.core.abstract="true" org.eventb.core.concrete="false" org.eventb.core.source="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#(" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.scVariable name="qlist2" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.variable#-" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.scVariable name="retval" org.eventb.core.abstract="true" org.eventb.core.concrete="false" org.eventb.core.source="/myqueue/queue.bum|org.eventb.core.machineFile#queue|org.eventb.core.variable#2" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="retval2" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.variable#." org.eventb.core.type="ℤ"/>
<org.eventb.core.scEvent name="retval3" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/myqueue/queue.bcm|org.eventb.core.scMachineFile#queue|org.eventb.core.scEvent#retvam" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'"/>
<org.eventb.core.scAction name="(" org.eventb.core.assignment="beg2 ≔ 0" org.eventb.core.label="act1" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'|org.eventb.core.action#'"/>
<org.eventb.core.scAction name=")" org.eventb.core.assignment="end2 ≔ 0" org.eventb.core.label="act2" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'|org.eventb.core.action#("/>
<org.eventb.core.scAction name="*" org.eventb.core.assignment="len2 ≔ 0" org.eventb.core.label="act3" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'|org.eventb.core.action#)"/>
<org.eventb.core.scAction name="+" org.eventb.core.assignment="qlist2 ≔ ∅ ⦂ ℙ(ℤ×ℤ)" org.eventb.core.label="act4" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'|org.eventb.core.action#*"/>
<org.eventb.core.scAction name="," org.eventb.core.assignment="retval2 ≔ 0" org.eventb.core.label="act5" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#'|org.eventb.core.action#+"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="retval4" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="enq2a" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/myqueue/queue.bcm|org.eventb.core.scMachineFile#queue|org.eventb.core.scEvent#retvan" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.refinesEvent#*"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="newval∈ℤ∧len2&lt;MAXLEN" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.guard#(" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="beg2≤end2∧end2&lt;MAXLEN" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.guard#," org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="newval" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.parameter#'" org.eventb.core.type="ℤ"/>
<org.eventb.core.scAction name="newvam" org.eventb.core.assignment="qlist2 ≔ qlist2∪{end2 ↦ newval}" org.eventb.core.label="act4" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.action#+"/>
<org.eventb.core.scAction name="newvan" org.eventb.core.assignment="end2 ≔ end2+1" org.eventb.core.label="act5" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.action#-"/>
<org.eventb.core.scAction name="newvao" org.eventb.core.assignment="len2 ≔ len2+1" org.eventb.core.label="act6" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#9|org.eventb.core.action#."/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="retval5" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="enq2b" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#?">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/myqueue/queue.bcm|org.eventb.core.scMachineFile#queue|org.eventb.core.scEvent#retvan" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#?|org.eventb.core.refinesEvent#'"/>
<org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="newval∈ℤ" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#?|org.eventb.core.guard#)" org.eventb.core.theorem="false"/>
<org.eventb.core.scParameter name="newval" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#?|org.eventb.core.parameter#(" org.eventb.core.type="ℤ"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="retval6" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="deq2" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#:">
<org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/myqueue/queue.bcm|org.eventb.core.scMachineFile#queue|org.eventb.core.scEvent#retvao" org.eventb.core.source="/myqueue/queuebndd.bum|org.eventb.core.machineFile#queuebndd|org.eventb.core.event#:|org.eventb.core.refinesEvent#'"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
