<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.prFile version="1">
<org.eventb.core.prProof name="INITIALISATION/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" 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="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="0∈ℕ∧0∈ℕ∧0∈ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p1"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(λn⦂ℤ·n∈ℕ ∣ 0)∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="MAXLEN∈ℤ">
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" 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="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="0=0 − 0"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="INITIALISATION/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" 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="'" org.eventb.core.prGoal="p1">
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="⊤ goal" org.eventb.core.prGoal="p1" org.eventb.core.prHyps=""/>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="0 ‥ 0 − 1⊆dom(λn⦂ℤ·n∈ℕ ∣ 0)"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.trueGoal"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="enq/grd1/THM" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p1" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p2,p3,p4"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p5"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p6" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="newval" org.eventb.core.type="ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="end∈ℕ">
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="⊤∧len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="beg∈ℕ">
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="newval∈ℤ∧len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="MAXLEN∈ℤ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ">
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="enq/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7,p8"/>
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9,p10"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p6">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p11">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p11" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p13"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p14">
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p3,p4,p1,p6,p7,p8,p10">
<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="(" org.eventb.core.prGoal="p15">
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p15" org.eventb.core.prHyps="p3,p4,p1,p6,p7,p8,p10">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="newval" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="⊤∧end+1∈ℕ∧len+1∈ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="len=end − beg"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="end+1∈ℕ∧len+1∈ℕ"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="end+1∈ℕ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="beg∈ℕ∧end+1∈ℕ∧len+1∈ℕ"/>
<org.eventb.core.prPred name="p15" org.eventb.core.predicate="len+1∈ℕ"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="newval∈ℤ"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="newval∈ℤ∧len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="MAXLEN∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL2"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="enq/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7,p8"/>
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9,p10"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p4,p3,p1,p6,p7,p8,p10">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="newval" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="newval∈ℤ"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="newval∈ℤ∧len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="MAXLEN∈ℤ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="len=end − beg"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="qlist{end ↦ newval}∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="enq/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">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7,p8"/>
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p9,p10"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with len=end − beg" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p4">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p10" org.eventb.core.prInfHyps="p12"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p3,p4,p1,p6,p7,p8,p10,p12">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="newval" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="end − beg+1=end+1 − beg"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="len+1=end+1 − beg"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="end − beg&lt;MAXLEN"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="len=end − beg"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="newval∈ℤ"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="newval∈ℤ∧len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="MAXLEN∈ℤ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="enq/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5,p6"/>
<org.eventb.core.prHypAction name="REWRITE1" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7,p8"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p8">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="newval" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="beg ‥ end+1 − 1⊆dom(qlist{end ↦ newval})"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="newval∈ℤ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="newval∈ℤ∧len&lt;MAXLEN"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="MAXLEN∈ℤ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="deq/act1/WD" org.eventb.core.confidence="0" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p2" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p3,p4,p5"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p6"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p7"/>
<org.eventb.core.prAnte name="(" org.eventb.core.prGoal="p8">
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="functional goal" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="p1"/>
</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.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="retval∈ℤ">
<org.eventb.core.prIdent name="retval" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="beg∈dom(qlist)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="beg∈dom(qlist)∧qlist∈ℤ ⇸ ℤ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="end∈ℕ">
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="len∈ℕ">
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="qlist∈ℤ ⇸ ℤ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ">
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.isFunGoal"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="deq/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2,p3,p4,p5">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7,p8"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p9">
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prGoal="p9" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p10">
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p11"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p12"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="∧ goal" org.eventb.core.prGoal="p10" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p13">
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p13" org.eventb.core.prHyps="p2,p3,p1,p4,p6,p7,p8">
<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="(" org.eventb.core.prGoal="p14">
<org.eventb.core.prRule name="r4" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p14" org.eventb.core.prHyps="p2,p3,p1,p4,p6,p7,p8">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p13" org.eventb.core.predicate="beg+1∈ℕ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="beg+1∈ℕ∧⊤∧len − 1∈ℕ"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="beg+1∈ℕ∧len − 1∈ℕ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="beg+1∈ℕ∧end∈ℕ∧len − 1∈ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="len=end − beg"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="retval∈ℤ">
<org.eventb.core.prIdent name="retval" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p14" org.eventb.core.predicate="len − 1∈ℕ"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="MAXLEN∈ℤ">
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="len&gt;0"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="org.eventb.core.seqprover.conj:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL2"/>
<org.eventb.core.prReas name="r4" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="deq/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">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p6,p7,p8"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p9"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p10"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="eh with len=end − beg" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p3">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p12">
<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p4" org.eventb.core.prInfHyps="p11"/>
<org.eventb.core.prHypAction name="DESELECT1" org.eventb.core.prHyps="p4"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p12" org.eventb.core.prHyps="p2,p3,p1,p4,p6,p7,p8,p11">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</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.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p11" org.eventb.core.predicate="end − beg&gt;0"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="len=end − beg"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prPred name="p10" org.eventb.core.predicate="retval∈ℤ">
<org.eventb.core.prIdent name="retval" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="len − 1=end − (beg+1)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="qlist∈ℕ ⇸ ℤ"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="MAXLEN∈ℤ">
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="end − beg − 1=end − (beg+1)"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="len&gt;0"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="org.eventb.core.seqprover.eq:1"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="deq/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="simplification rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p3" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p4,p5,p6"/>
<org.eventb.core.prRule name="r1" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="type rewrites" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="'">
<org.eventb.core.prHypAction name="HIDE0" org.eventb.core.prHyps="p7"/>
<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p8"/>
<org.eventb.core.prRule name="r2" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="PP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1,p2">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="R500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="beg" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="end" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="len" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="qlist" org.eventb.core.type="ℙ(ℤ×ℤ)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="retval∈ℤ">
<org.eventb.core.prIdent name="retval" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="beg+1 ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="beg ‥ end − 1⊆dom(qlist)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="end∈ℕ"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="len∈ℕ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="beg∈ℕ"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="MAXLEN∈ℤ">
<org.eventb.core.prIdent name="MAXLEN" org.eventb.core.type="ℤ"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="beg∈ℕ∧end∈ℕ∧len∈ℕ"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="len&gt;0"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="org.eventb.core.seqprover.autoRewritesL4:0"/>
<org.eventb.core.prReas name="r1" org.eventb.core.prRID="org.eventb.core.seqprover.typeRewrites:1"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalPP:1"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>
