<?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="p1" org.eventb.core.prSets="Customer">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="Seat" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="(∅ ⦂ ℙ(ℤ×Customer))∈Seat ⇸ Customer"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="Seat⊆ℕ"/>
<org.eventb.core.prReas name="r0" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
</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="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.prIdent name="Seat" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="Seat⊆Seat"/>
<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/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.prFresh="" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="" org.eventb.core.prSets="Customer">
<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.prIdent name="Seat" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="⊤"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(∅ ⦂ ℙ(ℤ×Customer))⊆Seat"/>
<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="purchase/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,p6" org.eventb.core.prSets="Customer">
<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="p7"/>
<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="p8"/>
<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,p2,p3,p1,p6,p7">
<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="Seat" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prIdent name="cust" org.eventb.core.type="Customer"/>
<org.eventb.core.prIdent name="seating" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prIdent name="sold" org.eventb.core.type="ℙ(ℤ×Customer)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="dom(sold)⊆seating"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="sold∈Seat ⇸ Customer"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="sold∪{min(seating ∖ dom(sold)) ↦ cust}∈Seat ⇸ Customer"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬seating⊆dom(sold)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="cust∈Customer"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="seating⊆Seat"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Seat⊆ℕ"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="seating ∖ dom(sold)≠(∅ ⦂ ℙ(ℤ))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∃b⦂ℤ·∀x⦂ℤ·x∈seating ∖ dom(sold)⇒b≤x"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<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="purchase/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,p6" org.eventb.core.prSets="Customer">
<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="p7"/>
<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="p8"/>
<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,p2,p3,p1,p6,p7">
<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="Seat" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prIdent name="cust" org.eventb.core.type="Customer"/>
<org.eventb.core.prIdent name="seating" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prIdent name="sold" org.eventb.core.type="ℙ(ℤ×Customer)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="dom(sold)⊆seating"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="sold∈Seat ⇸ Customer"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬seating⊆dom(sold)"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="cust∈Customer"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="seating⊆Seat"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Seat⊆ℕ"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="seating ∖ dom(sold)≠(∅ ⦂ ℙ(ℤ))"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="∃b⦂ℤ·∀x⦂ℤ·x∈seating ∖ dom(sold)⇒b≤x"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="dom(sold∪{min(seating ∖ dom(sold)) ↦ cust})⊆seating"/>
<org.eventb.core.prReas name="r2" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<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="purchase/act1/WD" 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.prSets="Customer">
<org.eventb.core.lang name="L"/>
<org.eventb.core.prRule name="r0" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="generalized MP" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p5">
<org.eventb.core.prAnte name="'" org.eventb.core.prGoal="p6">
<org.eventb.core.prRule name="r1" 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="p8">
<org.eventb.core.prHypAction name="REWRITE0" org.eventb.core.prHidden="p5" org.eventb.core.prHyps="" org.eventb.core.prInfHyps="p7"/>
<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="p9"/>
<org.eventb.core.prRule name="r3" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p8" org.eventb.core.prHyps="p4,p2,p3,p1,p7">
<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="Seat" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prIdent name="seating" org.eventb.core.type="ℙ(ℤ)"/>
<org.eventb.core.prIdent name="sold" org.eventb.core.type="ℙ(ℤ×Customer)"/>
<org.eventb.core.prPred name="p6" org.eventb.core.predicate="⊤∧(∃b⦂ℤ·∀x⦂ℤ·x∈seating ∖ dom(sold)⇒b≤x)"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="dom(sold)⊆seating"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="sold∈Seat ⇸ Customer"/>
<org.eventb.core.prPred name="p7" org.eventb.core.predicate="¬seating⊆dom(sold)"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="cust∈Customer">
<org.eventb.core.prIdent name="cust" org.eventb.core.type="Customer"/>
</org.eventb.core.prPred>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="seating⊆Seat"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="Seat⊆ℕ"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="seating ∖ dom(sold)≠(∅ ⦂ ℙ(ℤ))∧(∃b⦂ℤ·∀x⦂ℤ·x∈seating ∖ dom(sold)⇒b≤x)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="seating ∖ dom(sold)≠(∅ ⦂ ℙ(ℤ))"/>
<org.eventb.core.prPred name="p8" org.eventb.core.predicate="∃b⦂ℤ·∀x⦂ℤ·x∈seating ∖ dom(sold)⇒b≤x"/>
<org.eventb.core.prReas name="r3" org.eventb.core.prRID="com.clearsy.atelierb.provers.core.externalML:1"/>
<org.eventb.core.prReas name="r1" 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="r0" org.eventb.core.prRID="org.eventb.core.seqprover.genMPL2"/>
</org.eventb.core.prProof>
</org.eventb.core.prFile>
