-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathm0_cabins.bum
19 lines (19 loc) · 3.58 KB
/
m0_cabins.bum
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.core.generated="false" org.eventb.texttools.text_lastmodified="1590527933901" org.eventb.texttools.text_representation="machine m0_cabins sees m0_cabins_context variables floor invariants @up_type floor ∈ CABINS → FLOORS // @unique_floors ∀c·c ∈ dom(floor) ⇒ floor(c) ∉ ran({c} ⩤ floor) events event INITIALISATION then @up_init floor ≔ CABIN_FLOOR end event CabinMovesUp any cabin where @not_at_top_floor TOP_FLOOR ≥ floor(cabin) + 1 // @upper_floor_free (floor(cabin) + 1) ∉ ran(floor) then @move_up floor(cabin) ≔ floor(cabin) + 1 end event CabinMovesDown any cabin where @not_at_ground_floor 0 ≤ floor(cabin) − 1 // @lower_floor_free (floor(cabin) − 1) ∉ ran(floor) then @move_down floor(cabin) ≔ floor(cabin) − 1 end end " version="5">
<org.eventb.core.seesContext name="_awcWoJ94Eeq6js3PozKjqQ" org.eventb.core.target="m0_cabins_context"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="INITIALISATION">
<org.eventb.core.action name="_awc9sJ94Eeq6js3PozKjqQ" org.eventb.core.assignment="floor ≔ CABIN_FLOOR" org.eventb.core.generated="false" org.eventb.core.label="up_init"/>
</org.eventb.core.event>
<org.eventb.core.variable name="_awdkwJ94Eeq6js3PozKjqQ" org.eventb.core.generated="false" org.eventb.core.identifier="floor"/>
<org.eventb.core.invariant name="_aweL0J94Eeq6js3PozKjqQ" org.eventb.core.comment="@unique_floors ∀c·c ∈ dom(floor) ⇒ floor(c) ∉ ran({c} ⩤ floor)" org.eventb.core.generated="false" org.eventb.core.label="up_type" org.eventb.core.predicate="floor ∈ CABINS → FLOORS"/>
<org.eventb.core.event name="_aweL0Z94Eeq6js3PozKjqQ" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CabinMovesUp">
<org.eventb.core.parameter name="_awey4J94Eeq6js3PozKjqQ" org.eventb.core.generated="false" org.eventb.core.identifier="cabin"/>
<org.eventb.core.guard name="_awey4Z94Eeq6js3PozKjqQ" org.eventb.core.comment="@upper_floor_free (floor(cabin) + 1) ∉ ran(floor)" org.eventb.core.generated="false" org.eventb.core.label="not_at_top_floor" org.eventb.core.predicate="TOP_FLOOR ≥ floor(cabin) + 1"/>
<org.eventb.core.action name="_awfZ8J94Eeq6js3PozKjqQ" org.eventb.core.assignment="floor(cabin) ≔ floor(cabin) + 1" org.eventb.core.generated="false" org.eventb.core.label="move_up"/>
</org.eventb.core.event>
<org.eventb.core.event name="_awgBAJ94Eeq6js3PozKjqQ" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CabinMovesDown">
<org.eventb.core.parameter name="_awgoEJ94Eeq6js3PozKjqQ" org.eventb.core.generated="false" org.eventb.core.identifier="cabin"/>
<org.eventb.core.guard name="_awgoEZ94Eeq6js3PozKjqQ" org.eventb.core.comment="@lower_floor_free (floor(cabin) − 1) ∉ ran(floor)" org.eventb.core.generated="false" org.eventb.core.label="not_at_ground_floor" org.eventb.core.predicate="0 ≤ floor(cabin) − 1"/>
<org.eventb.core.action name="_awhPIJ94Eeq6js3PozKjqQ" org.eventb.core.assignment="floor(cabin) ≔ floor(cabin) − 1" org.eventb.core.generated="false" org.eventb.core.label="move_down"/>
</org.eventb.core.event>
</org.eventb.core.machineFile>