Browse files

removed "opened" flag

  • Loading branch information...
1 parent 6e41d24 commit ec5fd1465dbce7315e3f0c59d336dd9df9c22cea Alexander Bernauer committed Nov 18, 2010
Showing with 6,700 additions and 7,044 deletions.
  1. +8 −14 rodin/lift03_door_engine.bcm
  2. +36 −42 rodin/lift03_door_engine.bpo
  3. +105 −118 rodin/lift03_door_engine.bpr
  4. +7 −7 rodin/lift03_door_engine.bps
  5. +8 −14 rodin/lift03_door_engine.bum
  6. +63 −69 rodin/lift04_phys_main_engine.bcm
  7. +155 −161 rodin/lift04_phys_main_engine.bpo
  8. +1,643 −1,756 rodin/lift04_phys_main_engine.bpr
  9. +70 −70 rodin/lift04_phys_main_engine.bps
  10. +15 −16 rodin/lift04_phys_main_engine.bum
  11. +2 −0 rodin/lift05_conv_floor_up.bpo_tmp
  12. +83 −89 rodin/lift07_phys_door.bcm
  13. +100 −106 rodin/lift07_phys_door.bpo
  14. +966 −1,018 rodin/lift07_phys_door.bpr
  15. +30 −30 rodin/lift07_phys_door.bps
  16. +20 −21 rodin/lift07_phys_door.bum
  17. +2 −0 rodin/lift08_conv_door_open.bpo_tmp
  18. +101 −107 rodin/lift11_buttons.bcm
  19. +111 −117 rodin/lift11_buttons.bpo
  20. +365 −383 rodin/lift11_buttons.bpr
  21. +15 −15 rodin/lift11_buttons.bps
  22. +27 −28 rodin/lift11_buttons.bum
  23. +119 −125 rodin/lift15_up_buttons.bcm
  24. +124 −130 rodin/lift15_up_buttons.bpo
  25. +476 −496 rodin/lift15_up_buttons.bpr
  26. +15 −15 rodin/lift15_up_buttons.bps
  27. +33 −34 rodin/lift15_up_buttons.bum
  28. +2 −0 rodin/lift16_conv_light_on.bpo_tmp
  29. +140 −146 rodin/lift19_down_buttons.bcm
  30. +146 −152 rodin/lift19_down_buttons.bpo
  31. +505 −525 rodin/lift19_down_buttons.bpr
  32. +15 −15 rodin/lift19_down_buttons.bps
  33. +40 −41 rodin/lift19_down_buttons.bum
  34. +2 −0 rodin/lift20_conv_light_on.bpo_tmp
  35. +155 −161 rodin/lift23_scheduler.bcm
  36. +171 −177 rodin/lift23_scheduler.bpo
  37. +747 −769 rodin/lift23_scheduler.bpr
  38. +30 −30 rodin/lift23_scheduler.bps
  39. +46 −47 rodin/lift23_scheduler.bum
  40. +2 −0 rodin/lift24_final.bpo_tmp
View
22 rodin/lift03_door_engine.bcm
@@ -1,7 +1,7 @@
<?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="REF" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.refinesMachine#_v6zLQPMrEd-CfdFlXM8tVw"/>
-<org.eventb.core.scSeesContext name="SEES0" org.eventb.core.scTarget="/ProvenLift/ctx3_door_engine.bcc" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.seesContext#_v6zyUPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesMachine name="REF" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.refinesMachine#_0F-1cPMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scSeesContext name="SEES0" org.eventb.core.scTarget="/ProvenLift/ctx3_door_engine.bcc" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.seesContext#_0F-1cfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scInternalContext name="ctx1_floors">
<org.eventb.core.scAxiom name="AXM0" org.eventb.core.label="axm1_1" org.eventb.core.predicate="LAST_FLOOR∈ℕ1" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.axiom#_lTa6wdd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="LAST_FLOOR" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.constant#_lTa6wNd9Ed-Dle0at0Xgqg" org.eventb.core.type="ℤ"/>
@@ -32,26 +32,21 @@
<org.eventb.core.scInvariant name="INV3" org.eventb.core.label="inv2_1" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_1cMqQNd_Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="INV4" org.eventb.core.label="inv2_2" org.eventb.core.predicate="moved∈BOOL" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_yC1egNqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="INV5" org.eventb.core.label="inv3_1" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_HKimINqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV6" org.eventb.core.label="inv3_2" org.eventb.core.predicate="opened∈BOOL" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_84_oYNqzEd-IzpmRUY7GDg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV7" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV6" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="ctrlCableCommand" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.variable#_1cMDMtd_Ed-Dle0at0Xgqg" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.scVariable name="ctrlDoorCommand" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.variable#_HKh_EtqzEd-7IuFxCL4SWw" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.scVariable name="floor" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.variable#_9uEEsNd9Ed-Dle0at0Xgqg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="moved" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.variable#_yC03ctqwEd-O4vbSPlarTw" org.eventb.core.type="BOOL"/>
-<org.eventb.core.scVariable name="opened" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.variable#_84_BUNqzEd-IzpmRUY7GDg" org.eventb.core.type="BOOL"/>
<org.eventb.core.scEvent name="EVT0" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'">
<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT0" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="floor ≔ 0" org.eventb.core.label="act1_1" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#'|org.eventb.core.action#_9uErwNd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ FALSE" org.eventb.core.label="act2_2" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'|org.eventb.core.action#_1cMqQtd_Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_STOP" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'|org.eventb.core.action#_mweFUN0UEd-DHKwvWNa8WQ"/>
<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_STOP" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'|org.eventb.core.action#_HKimIdqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'|org.eventb.core.action#_85A2gNqzEd-IzpmRUY7GDg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT1" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="open_door" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw">
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKjNMNqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd3_2" org.eventb.core.predicate="opened=FALSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_85BdkNqzEd-IzpmRUY7GDg" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_OPEN" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.action#_HKjNMdqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.action#_85CEoNqzEd-IzpmRUY7GDg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT2" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="stop_door" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA">
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_OPEN" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.guard#_SjmzUNq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
@@ -62,39 +57,38 @@
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_CLOSE" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.action#_HKj0QdqzEd-7IuFxCL4SWw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT4" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_up" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_v62OkPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_0GAqoPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sodqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sotqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_WIND" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.action#_yC2so9qwEd-O4vbSPlarTw"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjnaYdq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT5" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_up" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_v621oPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_0GBRsPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1_1" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uFS0dd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC3TsdqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="floor ≔ floor+1" org.eventb.core.label="act1_1" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.action#_9uF54Nd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ TRUE" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.action#_yC3TstqwEd-O4vbSPlarTw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT6" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_down" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT3" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_v621ofMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT3" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_0GBRsfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wdqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="floor&gt;0" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wtqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_UNWIND" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.action#_yC4h0NqwEd-O4vbSPlarTw"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjoBcdq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT7" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_down" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT4" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_v621ovMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT4" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_0GB4wPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1_1" org.eventb.core.predicate="0&lt;floor" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uGg8Nd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC4h0tqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="floor ≔ floor − 1" org.eventb.core.label="act1_1" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.action#_9uGg8dd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ TRUE" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.action#_yC5I4NqwEd-O4vbSPlarTw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT8" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT5" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_v63csPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift02_main_engine.bcm|org.eventb.core.scMachineFile#lift02_main_engine|org.eventb.core.scEvent#EVT5" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_0GB4wfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I4tqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="moved=TRUE" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I49qwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_STOP" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_yC5v8NqwEd-O4vbSPlarTw"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ FALSE" org.eventb.core.label="act2_2" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_yC5v8dqwEd-O4vbSPlarTw"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="opened ≔ FALSE" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_85FH8NqzEd-IzpmRUY7GDg"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
View
78 rodin/lift03_door_engine.bpo
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<org.eventb.core.poFile org.eventb.core.poStamp="2">
+<org.eventb.core.poFile org.eventb.core.poStamp="5">
<org.eventb.core.poPredicateSet name="CTXHYP" org.eventb.core.poStamp="0">
<org.eventb.core.poIdentifier name="LAST_FLOOR" org.eventb.core.type="ℤ"/>
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="LAST_FLOOR∈ℕ1" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.axiom#_lTa6wdd9Ed-Dle0at0Xgqg"/>
@@ -18,150 +18,144 @@
<org.eventb.core.poIdentifier name="DOOR_STOP" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})" org.eventb.core.source="/ProvenLift/ctx3_door_engine.buc|org.eventb.core.contextFile#ctx3_door_engine|org.eventb.core.axiom#_STnBwNqyEd-7IuFxCL4SWw"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="1">
+<org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="ctrlCableCommand" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.poIdentifier name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.poIdentifier name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.poIdentifier name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.poIdentifier name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="floor∈ℕ" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.invariant#_9uEEsdd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="floor≤LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.invariant#_9uEEstd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.poPredicate name="PRD8" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.invariant#_VO9DcNqwEd-O4vbSPlarTw"/>
<org.eventb.core.poPredicate name="PRD9" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_1cMqQNd_Ed-Dle0at0Xgqg"/>
<org.eventb.core.poPredicate name="PRD10" org.eventb.core.predicate="moved∈BOOL" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_yC1egNqwEd-O4vbSPlarTw"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poSequent name="INITIALISATION/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="0">
+<org.eventb.core.poSequent name="INITIALISATION/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT0"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="CABLE_STOP≠CABLE_STOP⇒DOOR_STOP=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'"/>
<org.eventb.core.poSource name="SRC2" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#INITIALISATION\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT0" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="0">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT0" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="moved'" org.eventb.core.type="BOOL"/>
<org.eventb.core.poIdentifier name="ctrlCableCommand'" org.eventb.core.type="CABLE_COMMAND"/>
-<org.eventb.core.poIdentifier name="opened'" org.eventb.core.type="BOOL"/>
<org.eventb.core.poIdentifier name="ctrlDoorCommand'" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.poIdentifier name="floor'" org.eventb.core.type="ℤ"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT0" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT0" org.eventb.core.poStamp="0"/>
-<org.eventb.core.poSequent name="open_door/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT0" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT0" org.eventb.core.poStamp="3"/>
+<org.eventb.core.poSequent name="open_door/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT1"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒DOOR_OPEN=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#open_door\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT1" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
-<org.eventb.core.poIdentifier name="opened'" org.eventb.core.type="BOOL"/>
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT1" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="ctrlDoorCommand'" org.eventb.core.type="DOOR_COMMAND"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT1" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT1" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT1" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT1" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKjNMNqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="opened=FALSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_85BdkNqzEd-IzpmRUY7GDg"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poSequent name="stop_door/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="2">
+<org.eventb.core.poSequent name="stop_door/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT2"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒DOOR_STOP=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#stop_door\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT2" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT2" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="ctrlDoorCommand'" org.eventb.core.type="DOOR_COMMAND"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT2" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT2" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT2" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT2" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlDoorCommand=DOOR_OPEN" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.guard#_SjmzUNq3Ed-AAt710HomgA"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poSequent name="close_door/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="2">
+<org.eventb.core.poSequent name="close_door/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT3"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒DOOR_CLOSE=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#close_door\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT3" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT3" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="ctrlDoorCommand'" org.eventb.core.type="DOOR_COMMAND"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT3" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT3" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT3" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT3" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlDoorCommand=DOOR_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKj0QNqzEd-7IuFxCL4SWw"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poSequent name="start_move_up/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="2">
+<org.eventb.core.poSequent name="start_move_up/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT4"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="CABLE_WIND≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw"/>
<org.eventb.core.poSource name="SRC2" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#start_move_up\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT4" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT4" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="ctrlCableCommand'" org.eventb.core.type="CABLE_COMMAND"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT4" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT4" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT4" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT4" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sodqwEd-O4vbSPlarTw"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sotqwEd-O4vbSPlarTw"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjnaYdq3Ed-AAt710HomgA"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT5" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT5" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="moved'" org.eventb.core.type="BOOL"/>
<org.eventb.core.poIdentifier name="floor'" org.eventb.core.type="ℤ"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT5" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT5" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT5" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT5" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uFS0dd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC3TsdqwEd-O4vbSPlarTw"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poSequent name="start_move_down/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="2">
+<org.eventb.core.poSequent name="start_move_down/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="4">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT6"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="CABLE_UNWIND≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw"/>
<org.eventb.core.poSource name="SRC2" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#start_move_down\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT6" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT6" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="ctrlCableCommand'" org.eventb.core.type="CABLE_COMMAND"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT6" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT6" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT6" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT6" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wdqwEd-O4vbSPlarTw"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="floor&gt;0" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wtqwEd-O4vbSPlarTw"/>
<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjoBcdq3Ed-AAt710HomgA"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT7" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT7" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="moved'" org.eventb.core.type="BOOL"/>
<org.eventb.core.poIdentifier name="floor'" org.eventb.core.type="ℤ"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT7" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT7" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT7" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT7" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="0&lt;floor" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uGg8Nd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC4h0tqwEd-O4vbSPlarTw"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poSequent name="stop/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="2">
+<org.eventb.core.poSequent name="stop/inv3_3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5">
<org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTALLHYPEVT8"/>
<org.eventb.core.poPredicate name="GOAL" org.eventb.core.predicate="CABLE_STOP≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSource name="SRC0" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw"/>
<org.eventb.core.poSource name="SRC1" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw"/>
<org.eventb.core.poSource name="SRC2" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
<org.eventb.core.poSelHint name="HINT0" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poSequent#stop\/inv3_3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/>
-<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/>
+<org.eventb.core.poSelHint name="HINT1" org.eventb.core.poSelHintFst="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/>
</org.eventb.core.poSequent>
-<org.eventb.core.poPredicateSet name="EVTIDENTEVT8" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTIDENTEVT8" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poIdentifier name="moved'" org.eventb.core.type="BOOL"/>
<org.eventb.core.poIdentifier name="ctrlCableCommand'" org.eventb.core.type="CABLE_COMMAND"/>
-<org.eventb.core.poIdentifier name="opened'" org.eventb.core.type="BOOL"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="EVTALLHYPEVT8" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT8" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="EVTALLHYPEVT8" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#EVTIDENTEVT8" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I4tqwEd-O4vbSPlarTw"/>
<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="moved=TRUE" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I49qwEd-O4vbSPlarTw"/>
</org.eventb.core.poPredicateSet>
-<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="2">
+<org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/ProvenLift/lift03_door_engine.bpo|org.eventb.core.poFile#lift03_door_engine|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="3">
<org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_HKimINqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="opened∈BOOL" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_84_oYNqzEd-IzpmRUY7GDg"/>
-<org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
+<org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA"/>
</org.eventb.core.poPredicateSet>
</org.eventb.core.poFile>
View
223 rodin/lift03_door_engine.bpr
@@ -760,8 +760,8 @@
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="CABLE_STOP≠CABLE_STOP⇒DOOR_STOP=DOOR_CLOSE"/>
<org.eventb.core.prPred name="p9" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
</org.eventb.core.prProof>
-<org.eventb.core.prProof name="open_door/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
-<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p3,p17,p4,p10,p1,p11,p14,p15,p2,p18,p7,p16,p9,p13,p6,p12,p19,p5">
+<org.eventb.core.prProof name="open_door/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
+<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p6,p3,p15,p4,p8,p1,p9,p12,p13,p2,p16,p5,p14,p7,p11,p10,p17">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="CABLE_STOP" org.eventb.core.type="CABLE_COMMAND"/>
@@ -776,40 +776,37 @@
<org.eventb.core.prIdent name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.prIdent name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.prIdent name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="b2n(FALSE)=0"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="floor∈ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="b2n∈BOOL ⤖ {0,1}"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="TRUE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p5" org.eventb.core.predicate="opened=FALSE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒DOOR_OPEN=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p6" org.eventb.core.predicate="opened∈BOOL"/>
-<org.eventb.core.prPred name="p7" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
-<org.eventb.core.prPred name="p8" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
-<org.eventb.core.prPred name="p9" org.eventb.core.predicate="moved∈BOOL"/>
-<org.eventb.core.prPred name="p10" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
-<org.eventb.core.prPred name="p11" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
-<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
-<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
-<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
-<org.eventb.core.prPred name="p17" org.eventb.core.predicate="b2n(TRUE)=1"/>
-<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
-<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP"/>
+<org.eventb.core.prPred name="p5" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
+<org.eventb.core.prPred name="p6" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
+<org.eventb.core.prPred name="p7" org.eventb.core.predicate="moved∈BOOL"/>
+<org.eventb.core.prPred name="p8" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
+<org.eventb.core.prPred name="p9" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
+<org.eventb.core.prPred name="p10" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p11" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
+<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
+<org.eventb.core.prPred name="p12" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
+<org.eventb.core.prPred name="p14" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
+<org.eventb.core.prPred name="p15" org.eventb.core.predicate="b2n(TRUE)=1"/>
+<org.eventb.core.prPred name="p16" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
+<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP"/>
</org.eventb.core.prProof>
-<org.eventb.core.prProof name="stop_door/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
+<org.eventb.core.prProof name="stop_door/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
-<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p15" org.eventb.core.prInfHyps="p19,p20,p21,p22"/>
-<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p15"/>
-<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p19,p20,p21,p22"/>
+<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p18,p19,p20,p21"/>
+<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
+<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p18,p19,p20,p21"/>
<org.eventb.core.prRule name="org.eventb.core.seqprover.partitionRewrites" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="Partition rewrites in hyp (partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE}))" org.eventb.core.prHyps="">
<org.eventb.core.prAnte name="0">
-<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p14" org.eventb.core.prInfHyps="p23,p24,p25,p26"/>
-<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p14"/>
-<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p23,p24,p25,p26"/>
-<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p3,p17,p4,p10,p1,p11,p2,p18,p7,p16,p9,p12,p5,p13,p6,p19,p20,p21,p22,p23,p24,p25,p26">
+<org.eventb.core.prHypAction name="FORWARD_INF0" org.eventb.core.prHyps="p13" org.eventb.core.prInfHyps="p22,p23,p24,p25"/>
+<org.eventb.core.prHypAction name="HIDE1" org.eventb.core.prHyps="p13"/>
+<org.eventb.core.prHypAction name="SELECT2" org.eventb.core.prHyps="p22,p23,p24,p25"/>
+<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p3,p16,p4,p9,p1,p10,p2,p17,p6,p15,p8,p12,p11,p5,p18,p19,p20,p21,p22,p23,p24,p25">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
</org.eventb.core.prAnte>
@@ -830,37 +827,35 @@
<org.eventb.core.prIdent name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.prIdent name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.prIdent name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="floor∈ℕ"/>
-<org.eventb.core.prPred name="p24" org.eventb.core.predicate="¬DOOR_STOP=DOOR_OPEN"/>
+<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬DOOR_STOP=DOOR_OPEN"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="TRUE∈dom(b2n)"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="b2n∈BOOL ⤖ {0,1}"/>
-<org.eventb.core.prPred name="p5" org.eventb.core.predicate="opened∈BOOL"/>
-<org.eventb.core.prPred name="p26" org.eventb.core.predicate="¬DOOR_OPEN=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬CABLE_WIND=CABLE_UNWIND"/>
-<org.eventb.core.prPred name="p10" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
+<org.eventb.core.prPred name="p25" org.eventb.core.predicate="¬DOOR_OPEN=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p18" org.eventb.core.predicate="¬CABLE_WIND=CABLE_UNWIND"/>
+<org.eventb.core.prPred name="p9" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
-<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
-<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
-<org.eventb.core.prPred name="p17" org.eventb.core.predicate="b2n(TRUE)=1"/>
-<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬CABLE_STOP=CABLE_WIND"/>
+<org.eventb.core.prPred name="p11" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
+<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
+<org.eventb.core.prPred name="p16" org.eventb.core.predicate="b2n(TRUE)=1"/>
+<org.eventb.core.prPred name="p19" org.eventb.core.predicate="¬CABLE_STOP=CABLE_WIND"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="b2n(FALSE)=0"/>
-<org.eventb.core.prPred name="p23" org.eventb.core.predicate="¬DOOR_STOP=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p7" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
-<org.eventb.core.prPred name="p6" org.eventb.core.predicate="ctrlDoorCommand=DOOR_OPEN"/>
-<org.eventb.core.prPred name="p8" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
-<org.eventb.core.prPred name="p9" org.eventb.core.predicate="moved∈BOOL"/>
-<org.eventb.core.prPred name="p11" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p25" org.eventb.core.predicate="DOOR_COMMAND={DOOR_STOP,DOOR_OPEN,DOOR_CLOSE}"/>
+<org.eventb.core.prPred name="p22" org.eventb.core.predicate="¬DOOR_STOP=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p6" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
+<org.eventb.core.prPred name="p5" org.eventb.core.predicate="ctrlDoorCommand=DOOR_OPEN"/>
+<org.eventb.core.prPred name="p7" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
+<org.eventb.core.prPred name="p8" org.eventb.core.predicate="moved∈BOOL"/>
+<org.eventb.core.prPred name="p10" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
+<org.eventb.core.prPred name="p24" org.eventb.core.predicate="DOOR_COMMAND={DOOR_STOP,DOOR_OPEN,DOOR_CLOSE}"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒DOOR_STOP=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
-<org.eventb.core.prPred name="p21" org.eventb.core.predicate="¬CABLE_STOP=CABLE_UNWIND"/>
-<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
-<org.eventb.core.prPred name="p22" org.eventb.core.predicate="CABLE_COMMAND={CABLE_STOP,CABLE_WIND,CABLE_UNWIND}"/>
+<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
+<org.eventb.core.prPred name="p20" org.eventb.core.predicate="¬CABLE_STOP=CABLE_UNWIND"/>
+<org.eventb.core.prPred name="p17" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
+<org.eventb.core.prPred name="p21" org.eventb.core.predicate="CABLE_COMMAND={CABLE_STOP,CABLE_WIND,CABLE_UNWIND}"/>
</org.eventb.core.prProof>
-<org.eventb.core.prProof name="close_door/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
-<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p4,p17,p5,p10,p2,p11,p14,p15,p3,p18,p7,p16,p9,p13,p6,p12,p1">
+<org.eventb.core.prProof name="close_door/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
+<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p4,p16,p5,p9,p2,p10,p13,p14,p3,p17,p6,p15,p8,p12,p11,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="CABLE_STOP" org.eventb.core.type="CABLE_COMMAND"/>
@@ -875,29 +870,27 @@
<org.eventb.core.prIdent name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.prIdent name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.prIdent name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_STOP"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="b2n(FALSE)=0"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="floor∈ℕ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="b2n∈BOOL ⤖ {0,1}"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="TRUE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p6" org.eventb.core.predicate="opened∈BOOL"/>
-<org.eventb.core.prPred name="p7" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
-<org.eventb.core.prPred name="p8" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
-<org.eventb.core.prPred name="p9" org.eventb.core.predicate="moved∈BOOL"/>
-<org.eventb.core.prPred name="p10" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
-<org.eventb.core.prPred name="p11" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
-<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
-<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
-<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
-<org.eventb.core.prPred name="p17" org.eventb.core.predicate="b2n(TRUE)=1"/>
-<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
+<org.eventb.core.prPred name="p6" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
+<org.eventb.core.prPred name="p7" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
+<org.eventb.core.prPred name="p8" org.eventb.core.predicate="moved∈BOOL"/>
+<org.eventb.core.prPred name="p9" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
+<org.eventb.core.prPred name="p10" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
+<org.eventb.core.prPred name="p11" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
+<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
+<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
+<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
+<org.eventb.core.prPred name="p16" org.eventb.core.predicate="b2n(TRUE)=1"/>
+<org.eventb.core.prPred name="p17" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒DOOR_CLOSE=DOOR_CLOSE"/>
</org.eventb.core.prProof>
-<org.eventb.core.prProof name="start_move_up/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
-<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p3,p17,p4,p10,p1,p11,p14,p15,p2,p19,p6,p16,p8,p13,p5,p12,p20,p18,p9">
+<org.eventb.core.prProof name="start_move_up/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
+<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p6,p3,p16,p4,p9,p1,p10,p13,p14,p2,p18,p5,p15,p7,p12,p11,p19,p17,p8">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="CABLE_STOP" org.eventb.core.type="CABLE_COMMAND"/>
@@ -912,31 +905,29 @@
<org.eventb.core.prIdent name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.prIdent name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.prIdent name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="b2n(FALSE)=0"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="floor∈ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="b2n∈BOOL ⤖ {0,1}"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="TRUE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p5" org.eventb.core.predicate="opened∈BOOL"/>
-<org.eventb.core.prPred name="p6" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
+<org.eventb.core.prPred name="p5" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="CABLE_WIND≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p7" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
-<org.eventb.core.prPred name="p8" org.eventb.core.predicate="moved∈BOOL"/>
-<org.eventb.core.prPred name="p9" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p10" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
-<org.eventb.core.prPred name="p11" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
-<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
-<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
-<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
-<org.eventb.core.prPred name="p17" org.eventb.core.predicate="b2n(TRUE)=1"/>
-<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor&lt;LAST_FLOOR"/>
-<org.eventb.core.prPred name="p19" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
-<org.eventb.core.prPred name="p20" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP"/>
+<org.eventb.core.prPred name="p6" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
+<org.eventb.core.prPred name="p7" org.eventb.core.predicate="moved∈BOOL"/>
+<org.eventb.core.prPred name="p8" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p9" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
+<org.eventb.core.prPred name="p10" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
+<org.eventb.core.prPred name="p11" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
+<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
+<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
+<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
+<org.eventb.core.prPred name="p16" org.eventb.core.predicate="b2n(TRUE)=1"/>
+<org.eventb.core.prPred name="p17" org.eventb.core.predicate="floor&lt;LAST_FLOOR"/>
+<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
+<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP"/>
</org.eventb.core.prProof>
-<org.eventb.core.prProof name="start_move_down/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
-<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p3,p18,p4,p11,p1,p12,p15,p16,p2,p19,p7,p17,p9,p14,p6,p13,p20,p5,p10">
+<org.eventb.core.prProof name="start_move_down/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
+<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p3,p17,p4,p10,p1,p11,p14,p15,p2,p18,p6,p16,p8,p13,p12,p19,p5,p9">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="CABLE_STOP" org.eventb.core.type="CABLE_COMMAND"/>
@@ -951,31 +942,29 @@
<org.eventb.core.prIdent name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.prIdent name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.prIdent name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="b2n(FALSE)=0"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="floor∈ℕ"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="b2n∈BOOL ⤖ {0,1}"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="TRUE∈dom(b2n)"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="floor&gt;0"/>
-<org.eventb.core.prPred name="p6" org.eventb.core.predicate="opened∈BOOL"/>
-<org.eventb.core.prPred name="p7" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
-<org.eventb.core.prPred name="p8" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
-<org.eventb.core.prPred name="p9" org.eventb.core.predicate="moved∈BOOL"/>
-<org.eventb.core.prPred name="p10" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p11" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
-<org.eventb.core.prPred name="p12" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p14" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
-<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p6" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
+<org.eventb.core.prPred name="p7" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
+<org.eventb.core.prPred name="p8" org.eventb.core.predicate="moved∈BOOL"/>
+<org.eventb.core.prPred name="p9" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p10" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
+<org.eventb.core.prPred name="p11" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
+<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
+<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="CABLE_UNWIND≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p16" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
-<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
-<org.eventb.core.prPred name="p17" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
-<org.eventb.core.prPred name="p18" org.eventb.core.predicate="b2n(TRUE)=1"/>
-<org.eventb.core.prPred name="p19" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
-<org.eventb.core.prPred name="p20" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP"/>
+<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
+<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
+<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
+<org.eventb.core.prPred name="p17" org.eventb.core.predicate="b2n(TRUE)=1"/>
+<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
+<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP"/>
</org.eventb.core.prProof>
-<org.eventb.core.prProof name="stop/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
-<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p8,p4,p17,p5,p10,p2,p11,p14,p15,p3,p18,p7,p16,p9,p13,p6,p12,p19,p1">
+<org.eventb.core.prProof name="stop/inv3_3/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,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18" org.eventb.core.prSets="CABLE_COMMAND,DOOR_COMMAND">
+<org.eventb.core.prRule name="com.clearsy.atelierb.provers.core.externalML" org.eventb.core.confidence="1000" org.eventb.core.prDisplay="ML" org.eventb.core.prGoal="p0" org.eventb.core.prHyps="p7,p4,p16,p5,p9,p2,p10,p13,p14,p3,p17,p6,p15,p8,p12,p11,p18,p1">
<org.eventb.core.prString name=".arg" org.eventb.core.prSValue="0;1:500"/>
</org.eventb.core.prRule>
<org.eventb.core.prIdent name="CABLE_STOP" org.eventb.core.type="CABLE_COMMAND"/>
@@ -990,27 +979,25 @@
<org.eventb.core.prIdent name="ctrlDoorCommand" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.prIdent name="floor" org.eventb.core.type="ℤ"/>
<org.eventb.core.prIdent name="moved" org.eventb.core.type="BOOL"/>
-<org.eventb.core.prIdent name="opened" org.eventb.core.type="BOOL"/>
<org.eventb.core.prPred name="p1" org.eventb.core.predicate="moved=TRUE"/>
<org.eventb.core.prPred name="p2" org.eventb.core.predicate="b2n(FALSE)=0"/>
<org.eventb.core.prPred name="p3" org.eventb.core.predicate="floor∈ℕ"/>
<org.eventb.core.prPred name="p4" org.eventb.core.predicate="b2n∈BOOL ⤖ {0,1}"/>
<org.eventb.core.prPred name="p5" org.eventb.core.predicate="TRUE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p6" org.eventb.core.predicate="opened∈BOOL"/>
-<org.eventb.core.prPred name="p7" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
-<org.eventb.core.prPred name="p8" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
-<org.eventb.core.prPred name="p9" org.eventb.core.predicate="moved∈BOOL"/>
-<org.eventb.core.prPred name="p10" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
-<org.eventb.core.prPred name="p11" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
-<org.eventb.core.prPred name="p13" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
-<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p15" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
-<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
-<org.eventb.core.prPred name="p16" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
+<org.eventb.core.prPred name="p6" org.eventb.core.predicate="floor&lt;LAST_FLOOR∨0&lt;floor"/>
+<org.eventb.core.prPred name="p7" org.eventb.core.predicate="LAST_FLOOR∈ℕ1"/>
+<org.eventb.core.prPred name="p8" org.eventb.core.predicate="moved∈BOOL"/>
+<org.eventb.core.prPred name="p9" org.eventb.core.predicate="b2n∈BOOL ⇸ ℤ"/>
+<org.eventb.core.prPred name="p10" org.eventb.core.predicate="FALSE∈dom(b2n)"/>
+<org.eventb.core.prPred name="p11" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
+<org.eventb.core.prPred name="p12" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND"/>
+<org.eventb.core.prPred name="p14" org.eventb.core.predicate="partition(DOOR_COMMAND,{DOOR_STOP},{DOOR_OPEN},{DOOR_CLOSE})"/>
+<org.eventb.core.prPred name="p13" org.eventb.core.predicate="partition(CABLE_COMMAND,{CABLE_STOP},{CABLE_WIND},{CABLE_UNWIND})"/>
+<org.eventb.core.prPred name="p15" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND"/>
<org.eventb.core.prPred name="p0" org.eventb.core.predicate="CABLE_STOP≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE"/>
-<org.eventb.core.prPred name="p17" org.eventb.core.predicate="b2n(TRUE)=1"/>
-<org.eventb.core.prPred name="p18" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
-<org.eventb.core.prPred name="p19" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP"/>
+<org.eventb.core.prPred name="p16" org.eventb.core.predicate="b2n(TRUE)=1"/>
+<org.eventb.core.prPred name="p17" org.eventb.core.predicate="floor≤LAST_FLOOR"/>
+<org.eventb.core.prPred name="p18" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP"/>
</org.eventb.core.prProof>
<org.eventb.core.prProof name="start_move_up/VAR"/>
<org.eventb.core.prProof name="start_move_up/NAT"/>
View
14 rodin/lift03_door_engine.bps
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
-<org.eventb.core.psStatus name="INITIALISATION/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="open_door/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop_door/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="close_door/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_up/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_down/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="2" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="open_door/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop_door/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="close_door/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_up/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_down/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop/inv3_3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/>
</org.eventb.core.psFile>
View
22 rodin/lift03_door_engine.bum
@@ -1,24 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1290095506729" org.eventb.texttools.text_representation="machine lift03_door_engine refines lift02_main_engine sees ctx3_door_engine&#10;&#10;variables floor ctrlCableCommand moved ctrlDoorCommand opened&#10;&#10;invariants&#10; @inv3_1 ctrlDoorCommand ∈ DOOR_COMMAND&#10; @inv3_2 opened ∈ BOOL&#10; @inv3_3 ctrlCableCommand ≠ CABLE_STOP ⇒ ctrlDoorCommand = DOOR_CLOSE&#10;&#10;events&#10; event INITIALISATION extends INITIALISATION&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_STOP&#10; @act3_2 opened ≔ TRUE&#10; end&#10;&#10; anticipated event open_door&#10; where&#10; @grd3_1 ctrlCableCommand = CABLE_STOP&#10; @grd3_2 opened = FALSE&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_OPEN&#10; @act3_2 opened ≔ TRUE&#10; end&#10;&#10; anticipated event stop_door&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_OPEN&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_STOP&#10; end&#10;&#10; anticipated event close_door&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_STOP&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event start_move_up extends start_move_up&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_up extends move_up&#10; end&#10;&#10; anticipated event start_move_down extends start_move_down&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_down extends move_down&#10; end&#10;&#10; anticipated event stop extends stop&#10; then&#10; @act3_1 opened ≔ FALSE&#10; end&#10;end&#10;" version="5">
-<org.eventb.core.refinesMachine name="_v6zLQPMrEd-CfdFlXM8tVw" org.eventb.core.target="lift02_main_engine"/>
-<org.eventb.core.seesContext name="_v6zyUPMrEd-CfdFlXM8tVw" org.eventb.core.target="ctx3_door_engine"/>
+<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1290097252658" org.eventb.texttools.text_representation="machine lift03_door_engine refines lift02_main_engine sees ctx3_door_engine&#10;&#10;variables floor ctrlCableCommand moved ctrlDoorCommand&#10;&#10;invariants&#10; @inv3_1 ctrlDoorCommand ∈ DOOR_COMMAND&#10; @inv3_3 ctrlCableCommand ≠ CABLE_STOP ⇒ ctrlDoorCommand = DOOR_CLOSE&#10;&#10;events&#10; event INITIALISATION extends INITIALISATION&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_STOP&#10; end&#10;&#10; anticipated event open_door&#10; where&#10; @grd3_1 ctrlCableCommand = CABLE_STOP&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_OPEN&#10; end&#10;&#10; anticipated event stop_door&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_OPEN&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_STOP&#10; end&#10;&#10; anticipated event close_door&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_STOP&#10; then&#10; @act3_1 ctrlDoorCommand ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event start_move_up extends start_move_up&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_up extends move_up&#10; end&#10;&#10; anticipated event start_move_down extends start_move_down&#10; where&#10; @grd3_1 ctrlDoorCommand = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_down extends move_down&#10; end&#10;&#10; anticipated event stop extends stop&#10; end&#10;end&#10;" version="5">
+<org.eventb.core.refinesMachine name="_0F-1cPMvEd-IqfVXadHBVg" org.eventb.core.target="lift02_main_engine"/>
+<org.eventb.core.seesContext name="_0F-1cfMvEd-IqfVXadHBVg" org.eventb.core.target="ctx3_door_engine"/>
<org.eventb.core.variable name="_9uEEsNd9Ed-Dle0at0Xgqg" org.eventb.core.identifier="floor"/>
<org.eventb.core.variable name="_1cMDMtd_Ed-Dle0at0Xgqg" org.eventb.core.identifier="ctrlCableCommand"/>
<org.eventb.core.variable name="_yC03ctqwEd-O4vbSPlarTw" org.eventb.core.identifier="moved"/>
<org.eventb.core.variable name="_HKh_EtqzEd-7IuFxCL4SWw" org.eventb.core.identifier="ctrlDoorCommand"/>
-<org.eventb.core.variable name="_84_BUNqzEd-IzpmRUY7GDg" org.eventb.core.identifier="opened"/>
<org.eventb.core.invariant name="_HKimINqzEd-7IuFxCL4SWw" org.eventb.core.label="inv3_1" org.eventb.core.predicate="ctrlDoorCommand ∈ DOOR_COMMAND"/>
-<org.eventb.core.invariant name="_84_oYNqzEd-IzpmRUY7GDg" org.eventb.core.label="inv3_2" org.eventb.core.predicate="opened ∈ BOOL"/>
<org.eventb.core.invariant name="_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand ≠ CABLE_STOP ⇒ ctrlDoorCommand = DOOR_CLOSE"/>
<org.eventb.core.event name="'" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION">
<org.eventb.core.action name="_HKimIdqzEd-7IuFxCL4SWw" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_STOP" org.eventb.core.label="act3_1"/>
-<org.eventb.core.action name="_85A2gNqzEd-IzpmRUY7GDg" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2"/>
</org.eventb.core.event>
<org.eventb.core.event name="_HKimItqzEd-7IuFxCL4SWw" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="open_door">
<org.eventb.core.guard name="_HKjNMNqzEd-7IuFxCL4SWw" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlCableCommand = CABLE_STOP"/>
-<org.eventb.core.guard name="_85BdkNqzEd-IzpmRUY7GDg" org.eventb.core.label="grd3_2" org.eventb.core.predicate="opened = FALSE"/>
<org.eventb.core.action name="_HKjNMdqzEd-7IuFxCL4SWw" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_OPEN" org.eventb.core.label="act3_1"/>
-<org.eventb.core.action name="_85CEoNqzEd-IzpmRUY7GDg" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2"/>
</org.eventb.core.event>
<org.eventb.core.event name="_SjmMQNq3Ed-AAt710HomgA" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="stop_door">
<org.eventb.core.guard name="_SjmzUNq3Ed-AAt710HomgA" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand = DOOR_OPEN"/>
@@ -29,21 +24,20 @@
<org.eventb.core.action name="_HKj0QdqzEd-7IuFxCL4SWw" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_CLOSE" org.eventb.core.label="act3_1"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC2soNqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_up">
-<org.eventb.core.refinesEvent name="_v62OkPMrEd-CfdFlXM8tVw" org.eventb.core.target="start_move_up"/>
+<org.eventb.core.refinesEvent name="_0GAqoPMvEd-IqfVXadHBVg" org.eventb.core.target="start_move_up"/>
<org.eventb.core.guard name="_SjnaYdq3Ed-AAt710HomgA" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand = DOOR_CLOSE"/>
</org.eventb.core.event>
<org.eventb.core.event name="_9uFS0Nd9Ed-Dle0at0Xgqg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_up">
-<org.eventb.core.refinesEvent name="_v621oPMrEd-CfdFlXM8tVw" org.eventb.core.target="move_up"/>
+<org.eventb.core.refinesEvent name="_0GBRsPMvEd-IqfVXadHBVg" org.eventb.core.target="move_up"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC36wNqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_down">
-<org.eventb.core.refinesEvent name="_v621ofMrEd-CfdFlXM8tVw" org.eventb.core.target="start_move_down"/>
+<org.eventb.core.refinesEvent name="_0GBRsfMvEd-IqfVXadHBVg" org.eventb.core.target="start_move_down"/>
<org.eventb.core.guard name="_SjoBcdq3Ed-AAt710HomgA" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand = DOOR_CLOSE"/>
</org.eventb.core.event>
<org.eventb.core.event name="_9uF54dd9Ed-Dle0at0Xgqg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_down">
-<org.eventb.core.refinesEvent name="_v621ovMrEd-CfdFlXM8tVw" org.eventb.core.target="move_down"/>
+<org.eventb.core.refinesEvent name="_0GB4wPMvEd-IqfVXadHBVg" org.eventb.core.target="move_down"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC5I4dqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop">
-<org.eventb.core.refinesEvent name="_v63csPMrEd-CfdFlXM8tVw" org.eventb.core.target="stop"/>
-<org.eventb.core.action name="_85FH8NqzEd-IzpmRUY7GDg" org.eventb.core.assignment="opened ≔ FALSE" org.eventb.core.label="act3_1"/>
+<org.eventb.core.refinesEvent name="_0GB4wfMvEd-IqfVXadHBVg" org.eventb.core.target="stop"/>
</org.eventb.core.event>
</org.eventb.core.machineFile>
View
132 rodin/lift04_phys_main_engine.bcm
@@ -1,7 +1,7 @@
<?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="REF" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.refinesMachine#_t1qqwPMrEd-CfdFlXM8tVw"/>
-<org.eventb.core.scSeesContext name="SEES0" org.eventb.core.scTarget="/ProvenLift/ctx3_door_engine.bcc" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.seesContext#_t1qqwfMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesMachine name="REF" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.refinesMachine#_5zIlgPMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scSeesContext name="SEES0" org.eventb.core.scTarget="/ProvenLift/ctx3_door_engine.bcc" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.seesContext#_5zIlgfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scInternalContext name="ctx1_floors">
<org.eventb.core.scAxiom name="AXM0" org.eventb.core.label="axm1_1" org.eventb.core.predicate="LAST_FLOOR∈ℕ1" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.axiom#_lTa6wdd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="LAST_FLOOR" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.constant#_lTa6wNd9Ed-Dle0at0Xgqg" org.eventb.core.type="ℤ"/>
@@ -32,30 +32,28 @@
<org.eventb.core.scInvariant name="INV3" org.eventb.core.label="inv2_1" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_1cMqQNd_Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="INV4" org.eventb.core.label="inv2_2" org.eventb.core.predicate="moved∈BOOL" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_yC1egNqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="INV5" org.eventb.core.label="inv3_1" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_HKimINqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV6" org.eventb.core.label="inv3_2" org.eventb.core.predicate="opened∈BOOL" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_84_oYNqzEd-IzpmRUY7GDg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV7" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV8" org.eventb.core.label="inv4_1" org.eventb.core.predicate="PhyCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV9" org.eventb.core.label="inv4_2" org.eventb.core.predicate="PhyElevatorFloor∈0 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV10" org.eventb.core.label="inv4_3" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors∈BOOL" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhtq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV11" org.eventb.core.label="inv4_4" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGw-kNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV12" org.eventb.core.label="inv4_5" org.eventb.core.predicate="snsrCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESs90UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV13" org.eventb.core.label="inv4_6" org.eventb.core.predicate="snsrCableEngine=PhyCableEngine" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV14" org.eventb.core.label="inv4_7" org.eventb.core.predicate="snsrElevatorFloor∈−1 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wt0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV15" org.eventb.core.label="inv4_8" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒snsrElevatorFloor=−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESst0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV16" org.eventb.core.label="inv4_9" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE⇒snsrElevatorFloor=PhyElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV17" org.eventb.core.label="inv4_10" org.eventb.core.predicate="snsrElevatorFloor=−1⇒ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0t0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV18" org.eventb.core.label="inv4_11" org.eventb.core.predicate="snsrElevatorFloor=−1⇒snsrCableEngine≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0d0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV19" org.eventb.core.label="inv4_12" org.eventb.core.predicate="snsrCableEngine≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV20" org.eventb.core.label="inv4_13" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0N0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV21" org.eventb.core.label="inv4_14" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV6" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV7" org.eventb.core.label="inv4_1" org.eventb.core.predicate="PhyCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV8" org.eventb.core.label="inv4_2" org.eventb.core.predicate="PhyElevatorFloor∈0 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV9" org.eventb.core.label="inv4_3" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors∈BOOL" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhtq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV10" org.eventb.core.label="inv4_4" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGw-kNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV11" org.eventb.core.label="inv4_5" org.eventb.core.predicate="snsrCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESs90UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV12" org.eventb.core.label="inv4_6" org.eventb.core.predicate="snsrCableEngine=PhyCableEngine" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV13" org.eventb.core.label="inv4_7" org.eventb.core.predicate="snsrElevatorFloor∈−1 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wt0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV14" org.eventb.core.label="inv4_8" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒snsrElevatorFloor=−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESst0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV15" org.eventb.core.label="inv4_9" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE⇒snsrElevatorFloor=PhyElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV16" org.eventb.core.label="inv4_10" org.eventb.core.predicate="snsrElevatorFloor=−1⇒ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0t0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV17" org.eventb.core.label="inv4_11" org.eventb.core.predicate="snsrElevatorFloor=−1⇒snsrCableEngine≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0d0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV18" org.eventb.core.label="inv4_12" org.eventb.core.predicate="snsrCableEngine≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV19" org.eventb.core.label="inv4_13" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0N0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV20" org.eventb.core.label="inv4_14" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="PhyCableEngine" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_aGvwctq-Ed-L_e8_V4iXIg" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.scVariable name="PhyElevatorBetweenTwoFloors" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_aGwXgNq-Ed-L_e8_V4iXIg" org.eventb.core.type="BOOL"/>
<org.eventb.core.scVariable name="PhyElevatorFloor" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_aGvwc9q-Ed-L_e8_V4iXIg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="ctrlCableCommand" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_1cMDMtd_Ed-Dle0at0Xgqg" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.scVariable name="ctrlDoorCommand" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_HKh_EtqzEd-7IuFxCL4SWw" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.scVariable name="floor" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_9uEEsNd9Ed-Dle0at0Xgqg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="moved" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_BGiegNrCEd-L_e8_V4iXIg" org.eventb.core.type="BOOL"/>
-<org.eventb.core.scVariable name="opened" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_84_BUNqzEd-IzpmRUY7GDg" org.eventb.core.type="BOOL"/>
<org.eventb.core.scVariable name="snsrCableEngine" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_aGwXgtq-Ed-L_e8_V4iXIg" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.scVariable name="snsrElevatorFloor" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.variable#_aGwXg9q-Ed-L_e8_V4iXIg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scEvent name="EVT0" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'">
@@ -64,48 +62,47 @@
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ FALSE" org.eventb.core.label="act2_2" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'|org.eventb.core.action#_1cMqQtd_Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_STOP" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'|org.eventb.core.action#_mweFUN0UEd-DHKwvWNa8WQ"/>
<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_STOP" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'|org.eventb.core.action#_HKimIdqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'|org.eventb.core.action#_85A2gNqzEd-IzpmRUY7GDg"/>
-<org.eventb.core.scAction name="ACT5" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGxlo9q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT6" org.eventb.core.assignment="PhyElevatorFloor ≔ 0" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsNq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT7" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsdq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT8" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_BGk6wNrCEd-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT9" org.eventb.core.assignment="snsrElevatorFloor ≔ 0" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMs9q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGxlo9q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT5" org.eventb.core.assignment="PhyElevatorFloor ≔ 0" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsNq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT6" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsdq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT7" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_BGk6wNrCEd-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT8" org.eventb.core.assignment="snsrElevatorFloor ≔ 0" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMs9q-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT1" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw">
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGyMttq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGyzwNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGyzwdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzwtq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzw9q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzxNq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzxdq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scEvent name="EVT1" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg">
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGyMttq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGyzwNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGyzwdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzwtq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzw9q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzxNq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzxdq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT2" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw">
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGza0dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGza0tq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGza09q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGza1Nq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGza1dq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0B4Nq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0B4dq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scEvent name="EVT2" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg">
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGza0dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGza0tq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGza09q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGza1Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGza1dq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0B4Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0B4dq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT3" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw">
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG0B49q-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠0" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG0B5Nq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG0B5dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o8Nq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor − 1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o8dq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o8tq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o89q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o9Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scEvent name="EVT3" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg">
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG0B49q-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠0" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG0B5Nq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG0B5dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o8Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor − 1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o8dq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o8tq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o89q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o9Nq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT4" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw">
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG1QANq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG1QAdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG1QAtq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_BGnXAdrCEd-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG1QBNq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG1QBdq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scEvent name="EVT4" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg">
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG1QANq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG1QAdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG1QAtq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_BGnXAdrCEd-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG1QBNq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG1QBdq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT5" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="STOP_CABLE_ENGINE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg">
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyCableEngine≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.guard#_aG13Edq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
@@ -114,49 +111,47 @@
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.action#_aG13FNq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT6" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="open_door" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#_t1ymkPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#_5zSWgPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKjNMNqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd3_2" org.eventb.core.predicate="opened=FALSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_85BdkNqzEd-IzpmRUY7GDg" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_OPEN" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.action#_HKjNMdqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.action#_85CEoNqzEd-IzpmRUY7GDg"/>
-<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_-PriIdrtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_-PriIdrtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT7" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop_door" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.refinesEvent#_t1ymkfMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.refinesEvent#_5zULsPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_OPEN" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.guard#_SjmzUNq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_STOP" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.action#_SjmzUdq3Ed-AAt710HomgA"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT8" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="close_door" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#_t1zNoPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#_5zULsfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKj0QNqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_CLOSE" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.action#_HKj0QdqzEd-7IuFxCL4SWw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT9" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_up" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_t1zNofMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_5zULsvMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sodqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sotqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjnaYdq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_WIND" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.action#_yC2so9qwEd-O4vbSPlarTw"/>
<org.eventb.core.scGuard name="GRD3" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yrcXo90WEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT10" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_up" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_t1z0sPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_5zUywPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1_1" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uFS0dd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC3TsdqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="floor ≔ floor+1" org.eventb.core.label="act1_1" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.action#_9uF54Nd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ TRUE" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.action#_yC3TstqwEd-O4vbSPlarTw"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="floor&lt;snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_BGpMMdrCEd-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT11" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_down" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT6" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_t1z0sfMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT6" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_5zVZ0PMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wdqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="floor&gt;0" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wtqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjoBcdq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_UNWIND" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.action#_yC4h0NqwEd-O4vbSPlarTw"/>
<org.eventb.core.scGuard name="GRD3" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yrc-st0WEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT12" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_down" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT7" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_t10bwPMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT7" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_5zVZ0fMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1_1" org.eventb.core.predicate="0&lt;floor" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uGg8Nd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC4h0tqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="floor ≔ floor − 1" org.eventb.core.label="act1_1" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.action#_9uGg8dd9Ed-Dle0at0Xgqg"/>
@@ -165,12 +160,11 @@
<org.eventb.core.scGuard name="GRD3" org.eventb.core.label="grd4_2" org.eventb.core.predicate="snsrElevatorFloor&lt;floor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_-PswQdrtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT13" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT8" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_t10bwfMrEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift03_door_engine.bcm|org.eventb.core.scMachineFile#lift03_door_engine|org.eventb.core.scEvent#EVT8" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_5zWA4PMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I4tqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="moved=TRUE" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I49qwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_STOP" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_yC5v8NqwEd-O4vbSPlarTw"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ FALSE" org.eventb.core.label="act2_2" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_yC5v8dqwEd-O4vbSPlarTw"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="opened ≔ FALSE" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_85FH8NqzEd-IzpmRUY7GDg"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrElevatorFloor≠−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_BGpzQ9rCEd-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD3" org.eventb.core.label="grd4_2" org.eventb.core.predicate="snsrElevatorFloor=floor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_-PswQ9rtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
View
316 rodin/lift04_phys_main_engine.bpo
155 additions, 161 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
3,399 rodin/lift04_phys_main_engine.bpr
1,643 additions, 1,756 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
140 rodin/lift04_phys_main_engine.bps
@@ -1,73 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="0" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="true"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="4" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="open_door/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop_door/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="close_door/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_up/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_up/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="move_up/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="move_up/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_down/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_down/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="move_down/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="move_down/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="3" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_UP/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_UP/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="true"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_LEAVES_FLOOR_DOWN/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_9/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="ELEVATOR_REACHES_FLOOR_DOWN/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="9" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_11/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="STOP_CABLE_ENGINE/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="open_door/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop_door/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="close_door/inv4_12/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_up/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_up/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="move_up/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="move_up/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_down/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_down/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="move_down/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="move_down/inv4_14/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop/inv4_10/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="8" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop/inv4_13/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="8" org.eventb.core.psManual="false"/>
</org.eventb.core.psFile>
View
31 rodin/lift04_phys_main_engine.bum
@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1290095491383" org.eventb.texttools.text_representation="machine lift04_phys_main_engine refines lift03_door_engine sees ctx3_door_engine&#10;&#10;variables floor moved ctrlDoorCommand opened PhyCableEngine PhyElevatorFloor PhyElevatorBetweenTwoFloors ctrlCableCommand snsrCableEngine snsrElevatorFloor&#10;&#10;invariants&#10; @inv4_1 PhyCableEngine ∈ CABLE_COMMAND&#10; @inv4_2 PhyElevatorFloor ∈ 0‥LAST_FLOOR&#10; @inv4_3 PhyElevatorBetweenTwoFloors ∈ BOOL&#10; @inv4_4 PhyElevatorBetweenTwoFloors = TRUE ⇒ PhyElevatorFloor ≠ LAST_FLOOR&#10; @inv4_5 snsrCableEngine ∈ CABLE_COMMAND&#10; @inv4_6 snsrCableEngine = PhyCableEngine&#10; @inv4_7 snsrElevatorFloor ∈ −1‥LAST_FLOOR&#10; @inv4_8 PhyElevatorBetweenTwoFloors = TRUE ⇒ snsrElevatorFloor = −1&#10; @inv4_9 PhyElevatorBetweenTwoFloors = FALSE ⇒ snsrElevatorFloor = PhyElevatorFloor&#10; @inv4_10 snsrElevatorFloor = −1 ⇒ ctrlCableCommand ≠ CABLE_STOP&#10; @inv4_11 snsrElevatorFloor = −1 ⇒ snsrCableEngine ≠ CABLE_STOP // FUN30&#10; @inv4_12 snsrCableEngine ≠ CABLE_STOP ⇒ ctrlDoorCommand = DOOR_CLOSE // (FUN 28)&#10; @inv4_13 ctrlCableCommand = CABLE_STOP ⇒ floor = snsrElevatorFloor&#10; @inv4_14 snsrCableEngine = CABLE_STOP ⇒ floor = snsrElevatorFloor&#10;&#10;events&#10; event INITIALISATION extends INITIALISATION&#10; then&#10; @act4_1 PhyCableEngine ≔ CABLE_STOP&#10; @act4_2 PhyElevatorFloor ≔ 0&#10; @act4_3 PhyElevatorBetweenTwoFloors ≔ FALSE&#10; @act4_4 snsrCableEngine ≔ CABLE_STOP&#10; @act4_5 snsrElevatorFloor ≔ 0&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_UP&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = FALSE&#10; @grd4_2 PhyElevatorFloor ≠ LAST_FLOOR&#10; @grd4_3 ctrlCableCommand = CABLE_WIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ TRUE&#10; @act4_2 PhyCableEngine ≔ CABLE_WIND&#10; @act4_3 snsrElevatorFloor ≔ −1&#10; @act4_4 snsrCableEngine ≔ CABLE_WIND&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_UP&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = TRUE&#10; @grd4_2 ctrlCableCommand = CABLE_WIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ FALSE&#10; @act4_2 PhyElevatorFloor ≔ PhyElevatorFloor + 1&#10; @act4_3 PhyCableEngine ≔ CABLE_WIND&#10; @act4_4 snsrElevatorFloor ≔ PhyElevatorFloor + 1&#10; @act4_5 snsrCableEngine ≔ CABLE_WIND&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_DOWN&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = FALSE&#10; @grd4_2 PhyElevatorFloor ≠ 0&#10; @grd4_3 ctrlCableCommand = CABLE_UNWIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ TRUE&#10; @act4_2 PhyElevatorFloor ≔ PhyElevatorFloor − 1&#10; @act4_3 PhyCableEngine ≔ CABLE_UNWIND&#10; @act4_4 snsrElevatorFloor ≔ −1&#10; @act4_5 snsrCableEngine ≔ CABLE_UNWIND&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_DOWN&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = TRUE&#10; @grd4_2 ctrlCableCommand = CABLE_UNWIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ FALSE&#10; @act4_2 PhyCableEngine ≔ CABLE_UNWIND&#10; @act4_3 snsrElevatorFloor ≔ PhyElevatorFloor&#10; @act4_4 snsrCableEngine ≔ CABLE_UNWIND&#10; end&#10;&#10; anticipated event STOP_CABLE_ENGINE&#10; where&#10; @grd4_1 PhyCableEngine ≠ CABLE_STOP&#10; @grd4_2 ctrlCableCommand = CABLE_STOP&#10; then&#10; @act4_1 PhyCableEngine ≔ CABLE_STOP&#10; @act4_2 snsrCableEngine ≔ CABLE_STOP&#10; end&#10;&#10; anticipated event open_door extends open_door&#10; where&#10; @grd4_1 snsrCableEngine = CABLE_STOP&#10; end&#10;&#10; anticipated event stop_door extends stop_door&#10; end&#10;&#10; anticipated event close_door extends close_door&#10; end&#10;&#10; anticipated event start_move_up extends start_move_up&#10; where&#10; @grd4_1 snsrCableEngine = CABLE_STOP&#10; end&#10;&#10; anticipated event move_up extends move_up&#10; where&#10; @grd4_1 floor &lt; snsrElevatorFloor&#10; end&#10;&#10; anticipated event start_move_down extends start_move_down&#10; where&#10; @grd4_1 snsrCableEngine = CABLE_STOP&#10; end&#10;&#10; anticipated event move_down extends move_down&#10; where&#10; @grd4_1 snsrElevatorFloor ≠ −1&#10; @grd4_2 snsrElevatorFloor &lt; floor&#10; end&#10;&#10; anticipated event stop extends stop&#10; where&#10; @grd4_1 snsrElevatorFloor ≠ −1&#10; @grd4_2 snsrElevatorFloor = floor&#10; end&#10;end&#10;" version="5">
-<org.eventb.core.refinesMachine name="_t1qqwPMrEd-CfdFlXM8tVw" org.eventb.core.target="lift03_door_engine"/>
-<org.eventb.core.seesContext name="_t1qqwfMrEd-CfdFlXM8tVw" org.eventb.core.target="ctx3_door_engine"/>
+<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1290097289969" org.eventb.texttools.text_representation="machine lift04_phys_main_engine refines lift03_door_engine sees ctx3_door_engine&#10;&#10;variables floor moved ctrlDoorCommand PhyCableEngine PhyElevatorFloor PhyElevatorBetweenTwoFloors ctrlCableCommand snsrCableEngine snsrElevatorFloor&#10;&#10;invariants&#10; @inv4_1 PhyCableEngine ∈ CABLE_COMMAND&#10; @inv4_2 PhyElevatorFloor ∈ 0‥LAST_FLOOR&#10; @inv4_3 PhyElevatorBetweenTwoFloors ∈ BOOL&#10; @inv4_4 PhyElevatorBetweenTwoFloors = TRUE ⇒ PhyElevatorFloor ≠ LAST_FLOOR&#10; @inv4_5 snsrCableEngine ∈ CABLE_COMMAND&#10; @inv4_6 snsrCableEngine = PhyCableEngine&#10; @inv4_7 snsrElevatorFloor ∈ −1‥LAST_FLOOR&#10; @inv4_8 PhyElevatorBetweenTwoFloors = TRUE ⇒ snsrElevatorFloor = −1&#10; @inv4_9 PhyElevatorBetweenTwoFloors = FALSE ⇒ snsrElevatorFloor = PhyElevatorFloor&#10; @inv4_10 snsrElevatorFloor = −1 ⇒ ctrlCableCommand ≠ CABLE_STOP&#10; @inv4_11 snsrElevatorFloor = −1 ⇒ snsrCableEngine ≠ CABLE_STOP // FUN30&#10; @inv4_12 snsrCableEngine ≠ CABLE_STOP ⇒ ctrlDoorCommand = DOOR_CLOSE // (FUN 28)&#10; @inv4_13 ctrlCableCommand = CABLE_STOP ⇒ floor = snsrElevatorFloor&#10; @inv4_14 snsrCableEngine = CABLE_STOP ⇒ floor = snsrElevatorFloor&#10;&#10;events&#10; event INITIALISATION extends INITIALISATION&#10; then&#10; @act4_1 PhyCableEngine ≔ CABLE_STOP&#10; @act4_2 PhyElevatorFloor ≔ 0&#10; @act4_3 PhyElevatorBetweenTwoFloors ≔ FALSE&#10; @act4_4 snsrCableEngine ≔ CABLE_STOP&#10; @act4_5 snsrElevatorFloor ≔ 0&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_UP&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = FALSE&#10; @grd4_2 PhyElevatorFloor ≠ LAST_FLOOR&#10; @grd4_3 ctrlCableCommand = CABLE_WIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ TRUE&#10; @act4_2 PhyCableEngine ≔ CABLE_WIND&#10; @act4_3 snsrElevatorFloor ≔ −1&#10; @act4_4 snsrCableEngine ≔ CABLE_WIND&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_UP&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = TRUE&#10; @grd4_2 ctrlCableCommand = CABLE_WIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ FALSE&#10; @act4_2 PhyElevatorFloor ≔ PhyElevatorFloor + 1&#10; @act4_3 PhyCableEngine ≔ CABLE_WIND&#10; @act4_4 snsrElevatorFloor ≔ PhyElevatorFloor + 1&#10; @act4_5 snsrCableEngine ≔ CABLE_WIND&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_DOWN&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = FALSE&#10; @grd4_2 PhyElevatorFloor ≠ 0&#10; @grd4_3 ctrlCableCommand = CABLE_UNWIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ TRUE&#10; @act4_2 PhyElevatorFloor ≔ PhyElevatorFloor − 1&#10; @act4_3 PhyCableEngine ≔ CABLE_UNWIND&#10; @act4_4 snsrElevatorFloor ≔ −1&#10; @act4_5 snsrCableEngine ≔ CABLE_UNWIND&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_DOWN&#10; where&#10; @grd4_1 PhyElevatorBetweenTwoFloors = TRUE&#10; @grd4_2 ctrlCableCommand = CABLE_UNWIND&#10; then&#10; @act4_1 PhyElevatorBetweenTwoFloors ≔ FALSE&#10; @act4_2 PhyCableEngine ≔ CABLE_UNWIND&#10; @act4_3 snsrElevatorFloor ≔ PhyElevatorFloor&#10; @act4_4 snsrCableEngine ≔ CABLE_UNWIND&#10; end&#10;&#10; anticipated event STOP_CABLE_ENGINE&#10; where&#10; @grd4_1 PhyCableEngine ≠ CABLE_STOP&#10; @grd4_2 ctrlCableCommand = CABLE_STOP&#10; then&#10; @act4_1 PhyCableEngine ≔ CABLE_STOP&#10; @act4_2 snsrCableEngine ≔ CABLE_STOP&#10; end&#10;&#10; anticipated event open_door extends open_door&#10; where&#10; @grd4_1 snsrCableEngine = CABLE_STOP&#10; end&#10;&#10; anticipated event stop_door extends stop_door&#10; end&#10;&#10; anticipated event close_door extends close_door&#10; end&#10;&#10; anticipated event start_move_up extends start_move_up&#10; where&#10; @grd4_1 snsrCableEngine = CABLE_STOP&#10; end&#10;&#10; anticipated event move_up extends move_up&#10; where&#10; @grd4_1 floor &lt; snsrElevatorFloor&#10; end&#10;&#10; anticipated event start_move_down extends start_move_down&#10; where&#10; @grd4_1 snsrCableEngine = CABLE_STOP&#10; end&#10;&#10; anticipated event move_down extends move_down&#10; where&#10; @grd4_1 snsrElevatorFloor ≠ −1&#10; @grd4_2 snsrElevatorFloor &lt; floor&#10; end&#10;&#10; anticipated event stop extends stop&#10; where&#10; @grd4_1 snsrElevatorFloor ≠ −1&#10; @grd4_2 snsrElevatorFloor = floor&#10; end&#10;end&#10;" version="5">
+<org.eventb.core.refinesMachine name="_5zIlgPMvEd-IqfVXadHBVg" org.eventb.core.target="lift03_door_engine"/>
+<org.eventb.core.seesContext name="_5zIlgfMvEd-IqfVXadHBVg" org.eventb.core.target="ctx3_door_engine"/>
<org.eventb.core.variable name="_9uEEsNd9Ed-Dle0at0Xgqg" org.eventb.core.identifier="floor"/>
<org.eventb.core.variable name="_BGiegNrCEd-L_e8_V4iXIg" org.eventb.core.identifier="moved"/>
<org.eventb.core.variable name="_HKh_EtqzEd-7IuFxCL4SWw" org.eventb.core.identifier="ctrlDoorCommand"/>
-<org.eventb.core.variable name="_84_BUNqzEd-IzpmRUY7GDg" org.eventb.core.identifier="opened"/>
<org.eventb.core.variable name="_aGvwctq-Ed-L_e8_V4iXIg" org.eventb.core.identifier="PhyCableEngine"/>
<org.eventb.core.variable name="_aGvwc9q-Ed-L_e8_V4iXIg" org.eventb.core.identifier="PhyElevatorFloor"/>
<org.eventb.core.variable name="_aGwXgNq-Ed-L_e8_V4iXIg" org.eventb.core.identifier="PhyElevatorBetweenTwoFloors"/>
@@ -33,7 +32,7 @@
<org.eventb.core.action name="_BGk6wNrCEd-L_e8_V4iXIg" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_4"/>
<org.eventb.core.action name="_aGyMs9q-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrElevatorFloor ≔ 0" org.eventb.core.label="act4_5"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_t1uVIPMrEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP">
+<org.eventb.core.event name="_5zMP4PMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP">
<org.eventb.core.guard name="_aGyMttq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors = FALSE"/>
<org.eventb.core.guard name="_aGyzwNq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor ≠ LAST_FLOOR"/>
<org.eventb.core.guard name="_aGyzwdq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand = CABLE_WIND"/>
@@ -42,7 +41,7 @@
<org.eventb.core.action name="_aGyzxNq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_3"/>
<org.eventb.core.action name="_aGyzxdq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_4"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_t1vjQPMrEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP">
+<org.eventb.core.event name="_5zM28PMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP">
<org.eventb.core.guard name="_aGza0dq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors = TRUE"/>
<org.eventb.core.guard name="_aGza0tq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand = CABLE_WIND"/>
<org.eventb.core.action name="_aGza09q-Ed-L_e8_V4iXIg" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1"/>
@@ -51,7 +50,7 @@
<org.eventb.core.action name="_aG0B4Nq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor + 1" org.eventb.core.label="act4_4"/>
<org.eventb.core.action name="_aG0B4dq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_5"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_t1wKUPMrEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN">
+<org.eventb.core.event name="_5zOFEPMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN">
<org.eventb.core.guard name="_aG0B49q-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors = FALSE"/>
<org.eventb.core.guard name="_aG0B5Nq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor ≠ 0"/>
<org.eventb.core.guard name="_aG0B5dq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand = CABLE_UNWIND"/>
@@ -61,7 +60,7 @@
<org.eventb.core.action name="_aG0o89q-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_4"/>
<org.eventb.core.action name="_aG0o9Nq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_5"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_t1xYcPMrEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN">
+<org.eventb.core.event name="_5zPTMPMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN">
<org.eventb.core.guard name="_aG1QANq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors = TRUE"/>
<org.eventb.core.guard name="_aG1QAdq-Ed-L_e8_V4iXIg" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand = CABLE_UNWIND"/>
<org.eventb.core.action name="_aG1QAtq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1"/>
@@ -76,34 +75,34 @@
<org.eventb.core.action name="_aG13FNq-Ed-L_e8_V4iXIg" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_2"/>
</org.eventb.core.event>
<org.eventb.core.event name="_HKimItqzEd-7IuFxCL4SWw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="open_door">
-<org.eventb.core.refinesEvent name="_t1ymkPMrEd-CfdFlXM8tVw" org.eventb.core.target="open_door"/>
+<org.eventb.core.refinesEvent name="_5zSWgPMvEd-IqfVXadHBVg" org.eventb.core.target="open_door"/>
<org.eventb.core.guard name="_-PriIdrtEd-yLuKmXl8XEA" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine = CABLE_STOP"/>
</org.eventb.core.event>
<org.eventb.core.event name="_SjmMQNq3Ed-AAt710HomgA" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop_door">
-<org.eventb.core.refinesEvent name="_t1ymkfMrEd-CfdFlXM8tVw" org.eventb.core.target="stop_door"/>
+<org.eventb.core.refinesEvent name="_5zULsPMvEd-IqfVXadHBVg" org.eventb.core.target="stop_door"/>
</org.eventb.core.event>
<org.eventb.core.event name="_HKjNMtqzEd-7IuFxCL4SWw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="close_door">
-<org.eventb.core.refinesEvent name="_t1zNoPMrEd-CfdFlXM8tVw" org.eventb.core.target="close_door"/>
+<org.eventb.core.refinesEvent name="_5zULsfMvEd-IqfVXadHBVg" org.eventb.core.target="close_door"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC2soNqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_up">
-<org.eventb.core.refinesEvent name="_t1zNofMrEd-CfdFlXM8tVw" org.eventb.core.target="start_move_up"/>
+<org.eventb.core.refinesEvent name="_5zULsvMvEd-IqfVXadHBVg" org.eventb.core.target="start_move_up"/>
<org.eventb.core.guard name="_yrcXo90WEd-DHKwvWNa8WQ" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine = CABLE_STOP"/>
</org.eventb.core.event>
<org.eventb.core.event name="_9uFS0Nd9Ed-Dle0at0Xgqg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_up">
-<org.eventb.core.refinesEvent name="_t1z0sPMrEd-CfdFlXM8tVw" org.eventb.core.target="move_up"/>
+<org.eventb.core.refinesEvent name="_5zUywPMvEd-IqfVXadHBVg" org.eventb.core.target="move_up"/>
<org.eventb.core.guard name="_BGpMMdrCEd-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="floor &lt; snsrElevatorFloor"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC36wNqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_down">
-<org.eventb.core.refinesEvent name="_t1z0sfMrEd-CfdFlXM8tVw" org.eventb.core.target="start_move_down"/>
+<org.eventb.core.refinesEvent name="_5zVZ0PMvEd-IqfVXadHBVg" org.eventb.core.target="start_move_down"/>
<org.eventb.core.guard name="_yrc-st0WEd-DHKwvWNa8WQ" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine = CABLE_STOP"/>
</org.eventb.core.event>
<org.eventb.core.event name="_9uF54dd9Ed-Dle0at0Xgqg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_down">
-<org.eventb.core.refinesEvent name="_t10bwPMrEd-CfdFlXM8tVw" org.eventb.core.target="move_down"/>
+<org.eventb.core.refinesEvent name="_5zVZ0fMvEd-IqfVXadHBVg" org.eventb.core.target="move_down"/>
<org.eventb.core.guard name="_BGpzQdrCEd-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrElevatorFloor ≠ −1"/>
<org.eventb.core.guard name="_-PswQdrtEd-yLuKmXl8XEA" org.eventb.core.label="grd4_2" org.eventb.core.predicate="snsrElevatorFloor &lt; floor"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC5I4dqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop">
-<org.eventb.core.refinesEvent name="_t10bwfMrEd-CfdFlXM8tVw" org.eventb.core.target="stop"/>
+<org.eventb.core.refinesEvent name="_5zWA4PMvEd-IqfVXadHBVg" org.eventb.core.target="stop"/>
<org.eventb.core.guard name="_BGpzQ9rCEd-L_e8_V4iXIg" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrElevatorFloor ≠ −1"/>
<org.eventb.core.guard name="_-PswQ9rtEd-yLuKmXl8XEA" org.eventb.core.label="grd4_2" org.eventb.core.predicate="snsrElevatorFloor = floor"/>
</org.eventb.core.event>
View
2 rodin/lift05_conv_floor_up.bpo_tmp
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eventb.core.poFile/>
View
172 rodin/lift07_phys_door.bcm
@@ -1,7 +1,7 @@
<?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="REF" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.refinesMachine#_DmhH8PMsEd-CfdFlXM8tVw"/>
-<org.eventb.core.scSeesContext name="SEES0" org.eventb.core.scTarget="/ProvenLift/ctx4_door_position.bcc" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.seesContext#_DmhH8fMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesMachine name="REF" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.refinesMachine#__GzekPMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scSeesContext name="SEES0" org.eventb.core.scTarget="/ProvenLift/ctx4_door_position.bcc" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.seesContext#__GzekfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scInternalContext name="ctx1_floors">
<org.eventb.core.scAxiom name="AXM0" org.eventb.core.label="axm1_1" org.eventb.core.predicate="LAST_FLOOR∈ℕ1" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.axiom#_lTa6wdd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scConstant name="LAST_FLOOR" org.eventb.core.source="/ProvenLift/ctx1_floors.buc|org.eventb.core.contextFile#ctx1_floors|org.eventb.core.constant#_lTa6wNd9Ed-Dle0at0Xgqg" org.eventb.core.type="ℤ"/>
@@ -40,30 +40,29 @@
<org.eventb.core.scInvariant name="INV3" org.eventb.core.label="inv2_1" org.eventb.core.predicate="ctrlCableCommand∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_1cMqQNd_Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="INV4" org.eventb.core.label="inv2_2" org.eventb.core.predicate="moved∈BOOL" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.invariant#_yC1egNqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scInvariant name="INV5" org.eventb.core.label="inv3_1" org.eventb.core.predicate="ctrlDoorCommand∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_HKimINqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV6" org.eventb.core.label="inv3_2" org.eventb.core.predicate="opened∈BOOL" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_84_oYNqzEd-IzpmRUY7GDg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV7" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV8" org.eventb.core.label="inv4_1" org.eventb.core.predicate="PhyCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV9" org.eventb.core.label="inv4_2" org.eventb.core.predicate="PhyElevatorFloor∈0 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV10" org.eventb.core.label="inv4_3" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors∈BOOL" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhtq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV11" org.eventb.core.label="inv4_4" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGw-kNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV12" org.eventb.core.label="inv4_5" org.eventb.core.predicate="snsrCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESs90UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV13" org.eventb.core.label="inv4_6" org.eventb.core.predicate="snsrCableEngine=PhyCableEngine" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV14" org.eventb.core.label="inv4_7" org.eventb.core.predicate="snsrElevatorFloor∈−1 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wt0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV15" org.eventb.core.label="inv4_8" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒snsrElevatorFloor=−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESst0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV16" org.eventb.core.label="inv4_9" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE⇒snsrElevatorFloor=PhyElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV17" org.eventb.core.label="inv4_10" org.eventb.core.predicate="snsrElevatorFloor=−1⇒ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0t0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV18" org.eventb.core.label="inv4_11" org.eventb.core.predicate="snsrElevatorFloor=−1⇒snsrCableEngine≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0d0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV19" org.eventb.core.label="inv4_12" org.eventb.core.predicate="snsrCableEngine≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV20" org.eventb.core.label="inv4_13" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0N0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV21" org.eventb.core.label="inv4_14" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV22" org.eventb.core.label="inv7_1" org.eventb.core.predicate="PhyDoorEngine∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6UpROA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV23" org.eventb.core.label="inv7_2" org.eventb.core.predicate="PhyDoorPosition∈DOOR_POSITION" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQUOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV24" org.eventb.core.label="inv7_3" org.eventb.core.predicate="snsrDoorEngine∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQUeA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV25" org.eventb.core.label="inv7_4" org.eventb.core.predicate="snsrDoorEngine=PhyDoorEngine" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQUuA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV26" org.eventb.core.label="inv7_5" org.eventb.core.predicate="snsrDoorPosition∈DOOR_POSITION" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQU-A2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV27" org.eventb.core.label="inv7_6" org.eventb.core.predicate="snsrDoorPosition=PhyDoorPosition" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQVOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV28" org.eventb.core.label="inv7_7" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒snsrDoorEngine=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6V3YOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scInvariant name="INV29" org.eventb.core.label="inv7_8" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒snsrDoorPosition=DOOR_CLOSED" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6V3YeA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV6" org.eventb.core.label="inv3_3" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.invariant#_Sjk-INq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV7" org.eventb.core.label="inv4_1" org.eventb.core.predicate="PhyCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV8" org.eventb.core.label="inv4_2" org.eventb.core.predicate="PhyElevatorFloor∈0 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV9" org.eventb.core.label="inv4_3" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors∈BOOL" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGwXhtq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV10" org.eventb.core.label="inv4_4" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_aGw-kNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV11" org.eventb.core.label="inv4_5" org.eventb.core.predicate="snsrCableEngine∈CABLE_COMMAND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESs90UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV12" org.eventb.core.label="inv4_6" org.eventb.core.predicate="snsrCableEngine=PhyCableEngine" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV13" org.eventb.core.label="inv4_7" org.eventb.core.predicate="snsrElevatorFloor∈−1 ‥ LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wt0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV14" org.eventb.core.label="inv4_8" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE⇒snsrElevatorFloor=−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESst0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV15" org.eventb.core.label="inv4_9" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE⇒snsrElevatorFloor=PhyElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wd0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV16" org.eventb.core.label="inv4_10" org.eventb.core.predicate="snsrElevatorFloor=−1⇒ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0t0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV17" org.eventb.core.label="inv4_11" org.eventb.core.predicate="snsrElevatorFloor=−1⇒snsrCableEngine≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0d0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV18" org.eventb.core.label="inv4_12" org.eventb.core.predicate="snsrCableEngine≠CABLE_STOP⇒ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-ESsN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV19" org.eventb.core.label="inv4_13" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-Fg0N0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV20" org.eventb.core.label="inv4_14" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP⇒floor=snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.invariant#_b-E5wN0UEd-DHKwvWNa8WQ" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV21" org.eventb.core.label="inv7_1" org.eventb.core.predicate="PhyDoorEngine∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6UpROA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV22" org.eventb.core.label="inv7_2" org.eventb.core.predicate="PhyDoorPosition∈DOOR_POSITION" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQUOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV23" org.eventb.core.label="inv7_3" org.eventb.core.predicate="snsrDoorEngine∈DOOR_COMMAND" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQUeA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV24" org.eventb.core.label="inv7_4" org.eventb.core.predicate="snsrDoorEngine=PhyDoorEngine" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQUuA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV25" org.eventb.core.label="inv7_5" org.eventb.core.predicate="snsrDoorPosition∈DOOR_POSITION" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQU-A2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV26" org.eventb.core.label="inv7_6" org.eventb.core.predicate="snsrDoorPosition=PhyDoorPosition" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6VQVOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV27" org.eventb.core.label="inv7_7" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒snsrDoorEngine=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6V3YOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scInvariant name="INV28" org.eventb.core.label="inv7_8" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP⇒snsrDoorPosition=DOOR_CLOSED" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.invariant#_F6V3YeA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
<org.eventb.core.scVariable name="PhyCableEngine" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_aGvwctq-Ed-L_e8_V4iXIg" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.scVariable name="PhyDoorEngine" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_F6UpQOA2Ed-73py7lbE8bg" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.scVariable name="PhyDoorPosition" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_F6UpQeA2Ed-73py7lbE8bg" org.eventb.core.type="DOOR_POSITION"/>
@@ -73,7 +72,6 @@
<org.eventb.core.scVariable name="ctrlDoorCommand" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_HKh_EtqzEd-7IuFxCL4SWw" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.scVariable name="floor" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_9uEEsNd9Ed-Dle0at0Xgqg" org.eventb.core.type="ℤ"/>
<org.eventb.core.scVariable name="moved" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_BGiegNrCEd-L_e8_V4iXIg" org.eventb.core.type="BOOL"/>
-<org.eventb.core.scVariable name="opened" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_84_BUNqzEd-IzpmRUY7GDg" org.eventb.core.type="BOOL"/>
<org.eventb.core.scVariable name="snsrCableEngine" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_aGwXgtq-Ed-L_e8_V4iXIg" org.eventb.core.type="CABLE_COMMAND"/>
<org.eventb.core.scVariable name="snsrDoorEngine" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_F6UpQuA2Ed-73py7lbE8bg" org.eventb.core.type="DOOR_COMMAND"/>
<org.eventb.core.scVariable name="snsrDoorPosition" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.variable#_F6UpQ-A2Ed-73py7lbE8bg" org.eventb.core.type="DOOR_POSITION"/>
@@ -84,16 +82,15 @@
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ FALSE" org.eventb.core.label="act2_2" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'|org.eventb.core.action#_1cMqQtd_Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_STOP" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#'|org.eventb.core.action#_mweFUN0UEd-DHKwvWNa8WQ"/>
<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_STOP" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'|org.eventb.core.action#_HKimIdqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#'|org.eventb.core.action#_85A2gNqzEd-IzpmRUY7GDg"/>
-<org.eventb.core.scAction name="ACT5" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGxlo9q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT6" org.eventb.core.assignment="PhyElevatorFloor ≔ 0" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsNq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT7" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsdq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT8" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_BGk6wNrCEd-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT9" org.eventb.core.assignment="snsrElevatorFloor ≔ 0" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMs9q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT10" org.eventb.core.assignment="PhyDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act7_1" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6WecOA2Ed-73py7lbE8bg"/>
-<org.eventb.core.scAction name="ACT11" org.eventb.core.assignment="PhyDoorPosition ≔ DOOR_OPENED" org.eventb.core.label="act7_2" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6WeceA2Ed-73py7lbE8bg"/>
-<org.eventb.core.scAction name="ACT12" org.eventb.core.assignment="snsrDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act7_3" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6WecuA2Ed-73py7lbE8bg"/>
-<org.eventb.core.scAction name="ACT13" org.eventb.core.assignment="snsrDoorPosition ≔ DOOR_OPENED" org.eventb.core.label="act7_4" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6Wec-A2Ed-73py7lbE8bg"/>
+<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGxlo9q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT5" org.eventb.core.assignment="PhyElevatorFloor ≔ 0" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsNq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT6" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMsdq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT7" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_BGk6wNrCEd-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT8" org.eventb.core.assignment="snsrElevatorFloor ≔ 0" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#'|org.eventb.core.action#_aGyMs9q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT9" org.eventb.core.assignment="PhyDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act7_1" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6WecOA2Ed-73py7lbE8bg"/>
+<org.eventb.core.scAction name="ACT10" org.eventb.core.assignment="PhyDoorPosition ≔ DOOR_OPENED" org.eventb.core.label="act7_2" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6WeceA2Ed-73py7lbE8bg"/>
+<org.eventb.core.scAction name="ACT11" org.eventb.core.assignment="snsrDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act7_3" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6WecuA2Ed-73py7lbE8bg"/>
+<org.eventb.core.scAction name="ACT12" org.eventb.core.assignment="snsrDoorPosition ≔ DOOR_OPENED" org.eventb.core.label="act7_4" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#'|org.eventb.core.action#_F6Wec-A2Ed-73py7lbE8bg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT1" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="false" org.eventb.core.label="DOOR_OPENS_WHEN_CLOSED" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_F6WedOA2Ed-73py7lbE8bg">
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1" org.eventb.core.predicate="PhyDoorPosition=DOOR_CLOSED" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_F6WedOA2Ed-73py7lbE8bg|org.eventb.core.guard#_F6XFgOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
@@ -140,75 +137,73 @@
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act1" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_F6aI1eA2Ed-73py7lbE8bg|org.eventb.core.action#_F6av4uA2Ed-73py7lbE8bg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="snsrDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act2" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_F6aI1eA2Ed-73py7lbE8bg|org.eventb.core.action#_F6av4-A2Ed-73py7lbE8bg"/>
</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT7" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_Dmq48PMsEd-CfdFlXM8tVw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT1" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_Dmq48PMsEd-CfdFlXM8tVw|org.eventb.core.refinesEvent#_Dmq48fMsEd-CfdFlXM8tVw"/>
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGyMttq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGyzwNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGyzwdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzwtq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzw9q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzxNq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1uVIPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGyzxdq-Ed-L_e8_V4iXIg"/>
-</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT8" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_Dmq48vMsEd-CfdFlXM8tVw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT2" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_Dmq48vMsEd-CfdFlXM8tVw|org.eventb.core.refinesEvent#_Dmq48_MsEd-CfdFlXM8tVw"/>
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGza0dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aGza0tq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGza09q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGza1Nq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aGza1dq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0B4Nq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1vjQPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0B4dq-Ed-L_e8_V4iXIg"/>
-</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT9" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_Dmq49PMsEd-CfdFlXM8tVw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT3" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_Dmq49PMsEd-CfdFlXM8tVw|org.eventb.core.refinesEvent#_Dmq49fMsEd-CfdFlXM8tVw"/>
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG0B49q-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠0" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG0B5Nq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG0B5dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o8Nq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor − 1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o8dq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o8tq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o89q-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1wKUPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG0o9Nq-Ed-L_e8_V4iXIg"/>
-</org.eventb.core.scEvent>
-<org.eventb.core.scEvent name="EVT10" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_DmrgAPMsEd-CfdFlXM8tVw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT4" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_DmrgAPMsEd-CfdFlXM8tVw|org.eventb.core.refinesEvent#_DmrgAfMsEd-CfdFlXM8tVw"/>
-<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG1QANq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.guard#_aG1QAdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG1QAtq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_BGnXAdrCEd-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG1QBNq-Ed-L_e8_V4iXIg"/>
-<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_t1xYcPMrEd-CfdFlXM8tVw|org.eventb.core.action#_aG1QBdq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scEvent name="EVT7" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G6MQPMvEd-IqfVXadHBVg">
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT1" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G6MQPMvEd-IqfVXadHBVg|org.eventb.core.refinesEvent#__G6zUPMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGyMttq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGyzwNq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGyzwdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzwtq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzw9q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzxNq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zMP4PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGyzxdq-Ed-L_e8_V4iXIg"/>
+</org.eventb.core.scEvent>
+<org.eventb.core.scEvent name="EVT8" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G6zUfMvEd-IqfVXadHBVg">
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT2" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G6zUfMvEd-IqfVXadHBVg|org.eventb.core.refinesEvent#__G6zUvMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGza0dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.guard#_aGza0tq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGza09q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGza1Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aGza1dq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor+1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0B4Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_WIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zM28PMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0B4dq-Ed-L_e8_V4iXIg"/>
+</org.eventb.core.scEvent>
+<org.eventb.core.scEvent name="EVT9" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G6zU_MvEd-IqfVXadHBVg">
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT3" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G6zU_MvEd-IqfVXadHBVg|org.eventb.core.refinesEvent#__G6zVPMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=FALSE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG0B49q-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="PhyElevatorFloor≠0" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG0B5Nq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_3" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG0B5dq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ TRUE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o8Nq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyElevatorFloor ≔ PhyElevatorFloor − 1" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o8dq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o8tq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrElevatorFloor ≔ −1" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o89q-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT4" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_5" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zOFEPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG0o9Nq-Ed-L_e8_V4iXIg"/>
+</org.eventb.core.scEvent>
+<org.eventb.core.scEvent name="EVT10" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G7aYPMvEd-IqfVXadHBVg">
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT4" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#__G7aYPMvEd-IqfVXadHBVg|org.eventb.core.refinesEvent#__G7aYfMvEd-IqfVXadHBVg"/>
+<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyElevatorBetweenTwoFloors=TRUE" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG1QANq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.guard#_aG1QAdq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
+<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyElevatorBetweenTwoFloors ≔ FALSE" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG1QAtq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_BGnXAdrCEd-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="snsrElevatorFloor ≔ PhyElevatorFloor" org.eventb.core.label="act4_3" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG1QBNq-Ed-L_e8_V4iXIg"/>
+<org.eventb.core.scAction name="ACT3" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_UNWIND" org.eventb.core.label="act4_4" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_5zPTMPMvEd-IqfVXadHBVg|org.eventb.core.action#_aG1QBdq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT11" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="STOP_CABLE_ENGINE" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT5" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.refinesEvent#_DmrgAvMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT5" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.refinesEvent#__G7aYvMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd4_1" org.eventb.core.predicate="PhyCableEngine≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.guard#_aG13Edq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_2" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.guard#_aG13Etq-Ed-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="PhyCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.action#_aG13E9q-Ed-L_e8_V4iXIg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="snsrCableEngine ≔ CABLE_STOP" org.eventb.core.label="act4_2" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_aG13ENq-Ed-L_e8_V4iXIg|org.eventb.core.action#_aG13FNq-Ed-L_e8_V4iXIg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT12" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="open_door" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT6" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#_DmrgA_MsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT6" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#__G8BcPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKjNMNqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd3_2" org.eventb.core.predicate="opened=FALSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_85BdkNqzEd-IzpmRUY7GDg" org.eventb.core.theorem="false"/>
-<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_-PriIdrtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
+<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrCableEngine=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.guard#_-PriIdrtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_OPEN" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.action#_HKjNMdqzEd-7IuFxCL4SWw"/>
-<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="opened ≔ TRUE" org.eventb.core.label="act3_2" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKimItqzEd-7IuFxCL4SWw|org.eventb.core.action#_85CEoNqzEd-IzpmRUY7GDg"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT13" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop_door" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT7" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.refinesEvent#_DmsHEPMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT7" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.refinesEvent#__G8BcfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_OPEN" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.guard#_SjmzUNq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_STOP" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.action#_SjmzUdq3Ed-AAt710HomgA"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd7_1" org.eventb.core.predicate="snsrDoorPosition=DOOR_OPENED" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_SjmMQNq3Ed-AAt710HomgA|org.eventb.core.guard#_F6clEuA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT14" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="close_door" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT8" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#_DmsHEfMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT8" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.refinesEvent#__G8BcvMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_STOP" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.guard#_HKj0QNqzEd-7IuFxCL4SWw" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlDoorCommand ≔ DOOR_CLOSE" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.action#_HKj0QdqzEd-7IuFxCL4SWw"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd7_1" org.eventb.core.predicate="snsrDoorEngine=DOOR_STOP" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_HKjNMtqzEd-7IuFxCL4SWw|org.eventb.core.guard#_F6dMIeA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT15" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_up" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT9" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_DmsuIPMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT9" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#__G8ogPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sodqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC2sotqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjnaYdq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
@@ -218,15 +213,15 @@
<org.eventb.core.scGuard name="GRD5" org.eventb.core.label="grd7_2" org.eventb.core.predicate="snsrDoorEngine=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC2soNqwEd-O4vbSPlarTw|org.eventb.core.guard#_F6dMJOA2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT16" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_up" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT10" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_DmtVMPMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT10" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#__G9PkPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1_1" org.eventb.core.predicate="floor&lt;LAST_FLOOR" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uFS0dd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_WIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC3TsdqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="floor&lt;snsrElevatorFloor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_BGpMMdrCEd-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="floor ≔ floor+1" org.eventb.core.label="act1_1" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.action#_9uF54Nd9Ed-Dle0at0Xgqg"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ TRUE" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uFS0Nd9Ed-Dle0at0Xgqg|org.eventb.core.action#_yC3TstqwEd-O4vbSPlarTw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT17" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="start_move_down" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT11" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_DmtVMfMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT11" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#__G9PkfMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wdqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="floor&gt;0" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC36wtqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd3_1" org.eventb.core.predicate="ctrlDoorCommand=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_SjoBcdq3Ed-AAt710HomgA" org.eventb.core.theorem="false"/>
@@ -236,7 +231,7 @@
<org.eventb.core.scGuard name="GRD5" org.eventb.core.label="grd7_2" org.eventb.core.predicate="snsrDoorEngine=DOOR_CLOSE" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC36wNqwEd-O4vbSPlarTw|org.eventb.core.guard#_F6dzM-A2Ed-73py7lbE8bg" org.eventb.core.theorem="false"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT18" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="move_down" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT12" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#_Dmt8QPMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT12" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.refinesEvent#__G92oPMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd1_1" org.eventb.core.predicate="0&lt;floor" org.eventb.core.source="/ProvenLift/lift01_floors.bum|org.eventb.core.machineFile#lift01_floors|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_9uGg8Nd9Ed-Dle0at0Xgqg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand=CABLE_UNWIND" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_yC4h0tqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrElevatorFloor≠−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.guard#_BGpzQdrCEd-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
@@ -245,13 +240,12 @@
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ TRUE" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_9uF54dd9Ed-Dle0at0Xgqg|org.eventb.core.action#_yC5I4NqwEd-O4vbSPlarTw"/>
</org.eventb.core.scEvent>
<org.eventb.core.scEvent name="EVT19" org.eventb.core.accurate="true" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw">
-<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT13" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#_Dmt8QfMsEd-CfdFlXM8tVw"/>
+<org.eventb.core.scRefinesEvent name="REF0" org.eventb.core.scTarget="/ProvenLift/lift04_phys_main_engine.bcm|org.eventb.core.scMachineFile#lift04_phys_main_engine|org.eventb.core.scEvent#EVT13" org.eventb.core.source="/ProvenLift/lift07_phys_door.bum|org.eventb.core.machineFile#lift07_phys_door|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.refinesEvent#__G92ofMvEd-IqfVXadHBVg"/>
<org.eventb.core.scGuard name="GRD0" org.eventb.core.label="grd2_1" org.eventb.core.predicate="ctrlCableCommand≠CABLE_STOP" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I4tqwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD1" org.eventb.core.label="grd2_2" org.eventb.core.predicate="moved=TRUE" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_yC5I49qwEd-O4vbSPlarTw" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD2" org.eventb.core.label="grd4_1" org.eventb.core.predicate="snsrElevatorFloor≠−1" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_BGpzQ9rCEd-L_e8_V4iXIg" org.eventb.core.theorem="false"/>
<org.eventb.core.scGuard name="GRD3" org.eventb.core.label="grd4_2" org.eventb.core.predicate="snsrElevatorFloor=floor" org.eventb.core.source="/ProvenLift/lift04_phys_main_engine.bum|org.eventb.core.machineFile#lift04_phys_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.guard#_-PswQ9rtEd-yLuKmXl8XEA" org.eventb.core.theorem="false"/>
<org.eventb.core.scAction name="ACT0" org.eventb.core.assignment="ctrlCableCommand ≔ CABLE_STOP" org.eventb.core.label="act2_1" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_yC5v8NqwEd-O4vbSPlarTw"/>
<org.eventb.core.scAction name="ACT1" org.eventb.core.assignment="moved ≔ FALSE" org.eventb.core.label="act2_2" org.eventb.core.source="/ProvenLift/lift02_main_engine.bum|org.eventb.core.machineFile#lift02_main_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_yC5v8dqwEd-O4vbSPlarTw"/>
-<org.eventb.core.scAction name="ACT2" org.eventb.core.assignment="opened ≔ FALSE" org.eventb.core.label="act3_1" org.eventb.core.source="/ProvenLift/lift03_door_engine.bum|org.eventb.core.machineFile#lift03_door_engine|org.eventb.core.event#_yC5I4dqwEd-O4vbSPlarTw|org.eventb.core.action#_85FH8NqzEd-IzpmRUY7GDg"/>
</org.eventb.core.scEvent>
</org.eventb.core.scMachineFile>
View
206 rodin/lift07_phys_door.bpo
100 additions, 106 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
1,984 rodin/lift07_phys_door.bpr
966 additions, 1,018 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
60 rodin/lift07_phys_door.bps
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<org.eventb.core.psFile>
-<org.eventb.core.psStatus name="INITIALISATION/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="INITIALISATION/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_CLOSED/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_CLOSED/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="STOP_DOOR_ENGINE/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="STOP_DOOR_ENGINE/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_up/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_up/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_down/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="start_move_down/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
-<org.eventb.core.psStatus name="stop/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="7" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="INITIALISATION/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_CLOSED/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_OPENS_WHEN_HALF/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_OPENED/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_HALF/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_CLOSED/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="DOOR_CLOSES_WHEN_CLOSED/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="STOP_DOOR_ENGINE/inv7_4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="STOP_DOOR_ENGINE/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_up/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_up/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_down/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="start_move_down/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="10" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop/inv7_7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="11" org.eventb.core.psManual="false"/>
+<org.eventb.core.psStatus name="stop/inv7_8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="11" org.eventb.core.psManual="false"/>
</org.eventb.core.psFile>
View
41 rodin/lift07_phys_door.bum
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1290095637817" org.eventb.texttools.text_representation="machine lift07_phys_door refines lift04_phys_main_engine sees ctx4_door_position&#10;&#10;variables floor moved opened PhyCableEngine PhyElevatorFloor PhyElevatorBetweenTwoFloors ctrlCableCommand snsrCableEngine snsrElevatorFloor PhyDoorEngine PhyDoorPosition ctrlDoorCommand snsrDoorEngine snsrDoorPosition&#10;&#10;invariants&#10; @inv7_1 PhyDoorEngine ∈ DOOR_COMMAND&#10; @inv7_2 PhyDoorPosition ∈ DOOR_POSITION&#10; @inv7_3 snsrDoorEngine ∈ DOOR_COMMAND&#10; @inv7_4 snsrDoorEngine = PhyDoorEngine&#10; @inv7_5 snsrDoorPosition ∈ DOOR_POSITION&#10; @inv7_6 snsrDoorPosition = PhyDoorPosition&#10; @inv7_7 ctrlCableCommand ≠ CABLE_STOP ⇒ snsrDoorEngine = DOOR_CLOSE // FUN28&#10; @inv7_8 ctrlCableCommand ≠ CABLE_STOP ⇒ snsrDoorPosition = DOOR_CLOSED // FUN29&#10;&#10;events&#10; event INITIALISATION extends INITIALISATION&#10; then&#10; @act7_1 PhyDoorEngine ≔ DOOR_STOP&#10; @act7_2 PhyDoorPosition ≔ DOOR_OPENED&#10; @act7_3 snsrDoorEngine ≔ DOOR_STOP&#10; @act7_4 snsrDoorPosition ≔ DOOR_OPENED&#10; end&#10;&#10; anticipated event DOOR_OPENS_WHEN_CLOSED&#10; where&#10; @grd1 PhyDoorPosition = DOOR_CLOSED&#10; @grd2 ctrlDoorCommand = DOOR_OPEN&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_HALF&#10; @act2 PhyDoorEngine ≔ DOOR_OPEN&#10; @act3 snsrDoorPosition ≔ DOOR_HALF&#10; @act4 snsrDoorEngine ≔ DOOR_OPEN&#10; end&#10;&#10; anticipated event DOOR_OPENS_WHEN_HALF&#10; where&#10; @grd1 PhyDoorPosition = DOOR_HALF&#10; @grd2 ctrlDoorCommand = DOOR_OPEN&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_OPENED&#10; @act2 PhyDoorEngine ≔ DOOR_OPEN&#10; @act3 snsrDoorPosition ≔ DOOR_OPENED&#10; @act4 snsrDoorEngine ≔ DOOR_OPEN&#10; end&#10;&#10; anticipated event DOOR_CLOSES_WHEN_OPENED&#10; where&#10; @grd1 PhyDoorPosition = DOOR_OPENED&#10; @grd2 ctrlDoorCommand = DOOR_CLOSE&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_HALF&#10; @act2 PhyDoorEngine ≔ DOOR_CLOSE&#10; @act3 snsrDoorPosition ≔ DOOR_HALF&#10; @act4 snsrDoorEngine ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event DOOR_CLOSES_WHEN_HALF&#10; where&#10; @grd1 PhyDoorPosition = DOOR_HALF&#10; @grd2 ctrlDoorCommand = DOOR_CLOSE&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_CLOSED&#10; @act2 PhyDoorEngine ≔ DOOR_CLOSE&#10; @act3 snsrDoorPosition ≔ DOOR_CLOSED&#10; @act4 snsrDoorEngine ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event DOOR_CLOSES_WHEN_CLOSED&#10; where&#10; @grd1 PhyDoorPosition = DOOR_CLOSED&#10; @grd2 ctrlDoorCommand = DOOR_CLOSE&#10; @grd3 PhyDoorEngine ≠ DOOR_CLOSE&#10; then&#10; @act1 PhyDoorEngine ≔ DOOR_CLOSE&#10; @act2 snsrDoorEngine ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event STOP_DOOR_ENGINE&#10; where&#10; @grd1 PhyDoorEngine ≠ DOOR_STOP&#10; @grd2 ctrlDoorCommand = DOOR_STOP&#10; then&#10; @act1 PhyDoorEngine ≔ DOOR_STOP&#10; @act2 snsrDoorEngine ≔ DOOR_STOP&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_UP extends ELEVATOR_LEAVES_FLOOR_UP&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_UP extends ELEVATOR_REACHES_FLOOR_UP&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_DOWN extends ELEVATOR_LEAVES_FLOOR_DOWN&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_DOWN extends ELEVATOR_REACHES_FLOOR_DOWN&#10; end&#10;&#10; anticipated event STOP_CABLE_ENGINE extends STOP_CABLE_ENGINE&#10; end&#10;&#10; anticipated event open_door extends open_door&#10; end&#10;&#10; anticipated event stop_door extends stop_door&#10; where&#10; @grd7_1 snsrDoorPosition = DOOR_OPENED&#10; end&#10;&#10; anticipated event close_door extends close_door&#10; where&#10; @grd7_1 snsrDoorEngine = DOOR_STOP&#10; end&#10;&#10; anticipated event start_move_up extends start_move_up&#10; where&#10; @grd7_1 snsrDoorPosition = DOOR_CLOSED&#10; @grd7_2 snsrDoorEngine = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_up extends move_up&#10; end&#10;&#10; anticipated event start_move_down extends start_move_down&#10; where&#10; @grd7_1 snsrDoorPosition = DOOR_CLOSED&#10; @grd7_2 snsrDoorEngine = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_down extends move_down&#10; end&#10;&#10; anticipated event stop extends stop&#10; end&#10;end&#10;" version="5">
-<org.eventb.core.refinesMachine name="_DmhH8PMsEd-CfdFlXM8tVw" org.eventb.core.target="lift04_phys_main_engine"/>
-<org.eventb.core.seesContext name="_DmhH8fMsEd-CfdFlXM8tVw" org.eventb.core.target="ctx4_door_position"/>
+<org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd" org.eventb.texttools.text_lastmodified="1290097326104" org.eventb.texttools.text_representation="machine lift07_phys_door refines lift04_phys_main_engine sees ctx4_door_position&#10;&#10;variables floor moved PhyCableEngine PhyElevatorFloor PhyElevatorBetweenTwoFloors ctrlCableCommand snsrCableEngine snsrElevatorFloor PhyDoorEngine PhyDoorPosition ctrlDoorCommand snsrDoorEngine snsrDoorPosition&#10;&#10;invariants&#10; @inv7_1 PhyDoorEngine ∈ DOOR_COMMAND&#10; @inv7_2 PhyDoorPosition ∈ DOOR_POSITION&#10; @inv7_3 snsrDoorEngine ∈ DOOR_COMMAND&#10; @inv7_4 snsrDoorEngine = PhyDoorEngine&#10; @inv7_5 snsrDoorPosition ∈ DOOR_POSITION&#10; @inv7_6 snsrDoorPosition = PhyDoorPosition&#10; @inv7_7 ctrlCableCommand ≠ CABLE_STOP ⇒ snsrDoorEngine = DOOR_CLOSE // FUN28&#10; @inv7_8 ctrlCableCommand ≠ CABLE_STOP ⇒ snsrDoorPosition = DOOR_CLOSED // FUN29&#10;&#10;events&#10; event INITIALISATION extends INITIALISATION&#10; then&#10; @act7_1 PhyDoorEngine ≔ DOOR_STOP&#10; @act7_2 PhyDoorPosition ≔ DOOR_OPENED&#10; @act7_3 snsrDoorEngine ≔ DOOR_STOP&#10; @act7_4 snsrDoorPosition ≔ DOOR_OPENED&#10; end&#10;&#10; anticipated event DOOR_OPENS_WHEN_CLOSED&#10; where&#10; @grd1 PhyDoorPosition = DOOR_CLOSED&#10; @grd2 ctrlDoorCommand = DOOR_OPEN&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_HALF&#10; @act2 PhyDoorEngine ≔ DOOR_OPEN&#10; @act3 snsrDoorPosition ≔ DOOR_HALF&#10; @act4 snsrDoorEngine ≔ DOOR_OPEN&#10; end&#10;&#10; anticipated event DOOR_OPENS_WHEN_HALF&#10; where&#10; @grd1 PhyDoorPosition = DOOR_HALF&#10; @grd2 ctrlDoorCommand = DOOR_OPEN&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_OPENED&#10; @act2 PhyDoorEngine ≔ DOOR_OPEN&#10; @act3 snsrDoorPosition ≔ DOOR_OPENED&#10; @act4 snsrDoorEngine ≔ DOOR_OPEN&#10; end&#10;&#10; anticipated event DOOR_CLOSES_WHEN_OPENED&#10; where&#10; @grd1 PhyDoorPosition = DOOR_OPENED&#10; @grd2 ctrlDoorCommand = DOOR_CLOSE&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_HALF&#10; @act2 PhyDoorEngine ≔ DOOR_CLOSE&#10; @act3 snsrDoorPosition ≔ DOOR_HALF&#10; @act4 snsrDoorEngine ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event DOOR_CLOSES_WHEN_HALF&#10; where&#10; @grd1 PhyDoorPosition = DOOR_HALF&#10; @grd2 ctrlDoorCommand = DOOR_CLOSE&#10; then&#10; @act1 PhyDoorPosition ≔ DOOR_CLOSED&#10; @act2 PhyDoorEngine ≔ DOOR_CLOSE&#10; @act3 snsrDoorPosition ≔ DOOR_CLOSED&#10; @act4 snsrDoorEngine ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event DOOR_CLOSES_WHEN_CLOSED&#10; where&#10; @grd1 PhyDoorPosition = DOOR_CLOSED&#10; @grd2 ctrlDoorCommand = DOOR_CLOSE&#10; @grd3 PhyDoorEngine ≠ DOOR_CLOSE&#10; then&#10; @act1 PhyDoorEngine ≔ DOOR_CLOSE&#10; @act2 snsrDoorEngine ≔ DOOR_CLOSE&#10; end&#10;&#10; anticipated event STOP_DOOR_ENGINE&#10; where&#10; @grd1 PhyDoorEngine ≠ DOOR_STOP&#10; @grd2 ctrlDoorCommand = DOOR_STOP&#10; then&#10; @act1 PhyDoorEngine ≔ DOOR_STOP&#10; @act2 snsrDoorEngine ≔ DOOR_STOP&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_UP extends ELEVATOR_LEAVES_FLOOR_UP&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_UP extends ELEVATOR_REACHES_FLOOR_UP&#10; end&#10;&#10; anticipated event ELEVATOR_LEAVES_FLOOR_DOWN extends ELEVATOR_LEAVES_FLOOR_DOWN&#10; end&#10;&#10; anticipated event ELEVATOR_REACHES_FLOOR_DOWN extends ELEVATOR_REACHES_FLOOR_DOWN&#10; end&#10;&#10; anticipated event STOP_CABLE_ENGINE extends STOP_CABLE_ENGINE&#10; end&#10;&#10; anticipated event open_door extends open_door&#10; end&#10;&#10; anticipated event stop_door extends stop_door&#10; where&#10; @grd7_1 snsrDoorPosition = DOOR_OPENED&#10; end&#10;&#10; anticipated event close_door extends close_door&#10; where&#10; @grd7_1 snsrDoorEngine = DOOR_STOP&#10; end&#10;&#10; anticipated event start_move_up extends start_move_up&#10; where&#10; @grd7_1 snsrDoorPosition = DOOR_CLOSED&#10; @grd7_2 snsrDoorEngine = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_up extends move_up&#10; end&#10;&#10; anticipated event start_move_down extends start_move_down&#10; where&#10; @grd7_1 snsrDoorPosition = DOOR_CLOSED&#10; @grd7_2 snsrDoorEngine = DOOR_CLOSE&#10; end&#10;&#10; anticipated event move_down extends move_down&#10; end&#10;&#10; anticipated event stop extends stop&#10; end&#10;end&#10;" version="5">
+<org.eventb.core.refinesMachine name="__GzekPMvEd-IqfVXadHBVg" org.eventb.core.target="lift04_phys_main_engine"/>
+<org.eventb.core.seesContext name="__GzekfMvEd-IqfVXadHBVg" org.eventb.core.target="ctx4_door_position"/>
<org.eventb.core.variable name="_9uEEsNd9Ed-Dle0at0Xgqg" org.eventb.core.identifier="floor"/>
<org.eventb.core.variable name="_BGiegNrCEd-L_e8_V4iXIg" org.eventb.core.identifier="moved"/>
-<org.eventb.core.variable name="_84_BUNqzEd-IzpmRUY7GDg" org.eventb.core.identifier="opened"/>
<org.eventb.core.variable name="_aGvwctq-Ed-L_e8_V4iXIg" org.eventb.core.identifier="PhyCableEngine"/>
<org.eventb.core.variable name="_aGvwc9q-Ed-L_e8_V4iXIg" org.eventb.core.identifier="PhyElevatorFloor"/>
<org.eventb.core.variable name="_aGwXgNq-Ed-L_e8_V4iXIg" org.eventb.core.identifier="PhyElevatorBetweenTwoFloors"/>
@@ -75,49 +74,49 @@
<org.eventb.core.action name="_F6av4uA2Ed-73py7lbE8bg" org.eventb.core.assignment="PhyDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act1"/>
<org.eventb.core.action name="_F6av4-A2Ed-73py7lbE8bg" org.eventb.core.assignment="snsrDoorEngine ≔ DOOR_STOP" org.eventb.core.label="act2"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_Dmq48PMsEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP">
-<org.eventb.core.refinesEvent name="_Dmq48fMsEd-CfdFlXM8tVw" org.eventb.core.target="ELEVATOR_LEAVES_FLOOR_UP"/>
+<org.eventb.core.event name="__G6MQPMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_UP">
+<org.eventb.core.refinesEvent name="__G6zUPMvEd-IqfVXadHBVg" org.eventb.core.target="ELEVATOR_LEAVES_FLOOR_UP"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_Dmq48vMsEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP">
-<org.eventb.core.refinesEvent name="_Dmq48_MsEd-CfdFlXM8tVw" org.eventb.core.target="ELEVATOR_REACHES_FLOOR_UP"/>
+<org.eventb.core.event name="__G6zUfMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_UP">
+<org.eventb.core.refinesEvent name="__G6zUvMvEd-IqfVXadHBVg" org.eventb.core.target="ELEVATOR_REACHES_FLOOR_UP"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_Dmq49PMsEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN">
-<org.eventb.core.refinesEvent name="_Dmq49fMsEd-CfdFlXM8tVw" org.eventb.core.target="ELEVATOR_LEAVES_FLOOR_DOWN"/>
+<org.eventb.core.event name="__G6zU_MvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_LEAVES_FLOOR_DOWN">
+<org.eventb.core.refinesEvent name="__G6zVPMvEd-IqfVXadHBVg" org.eventb.core.target="ELEVATOR_LEAVES_FLOOR_DOWN"/>
</org.eventb.core.event>
-<org.eventb.core.event name="_DmrgAPMsEd-CfdFlXM8tVw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN">
-<org.eventb.core.refinesEvent name="_DmrgAfMsEd-CfdFlXM8tVw" org.eventb.core.target="ELEVATOR_REACHES_FLOOR_DOWN"/>
+<org.eventb.core.event name="__G7aYPMvEd-IqfVXadHBVg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="ELEVATOR_REACHES_FLOOR_DOWN">
+<org.eventb.core.refinesEvent name="__G7aYfMvEd-IqfVXadHBVg" org.eventb.core.target="ELEVATOR_REACHES_FLOOR_DOWN"/>
</org.eventb.core.event>
<org.eventb.core.event name="_aG13ENq-Ed-L_e8_V4iXIg" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="STOP_CABLE_ENGINE">
-<org.eventb.core.refinesEvent name="_DmrgAvMsEd-CfdFlXM8tVw" org.eventb.core.target="STOP_CABLE_ENGINE"/>
+<org.eventb.core.refinesEvent name="__G7aYvMvEd-IqfVXadHBVg" org.eventb.core.target="STOP_CABLE_ENGINE"/>
</org.eventb.core.event>
<org.eventb.core.event name="_HKimItqzEd-7IuFxCL4SWw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="open_door">
-<org.eventb.core.refinesEvent name="_DmrgA_MsEd-CfdFlXM8tVw" org.eventb.core.target="open_door"/>
+<org.eventb.core.refinesEvent name="__G8BcPMvEd-IqfVXadHBVg" org.eventb.core.target="open_door"/>
</org.eventb.core.event>
<org.eventb.core.event name="_SjmMQNq3Ed-AAt710HomgA" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="stop_door">
-<org.eventb.core.refinesEvent name="_DmsHEPMsEd-CfdFlXM8tVw" org.eventb.core.target="stop_door"/>
+<org.eventb.core.refinesEvent name="__G8BcfMvEd-IqfVXadHBVg" org.eventb.core.target="stop_door"/>
<org.eventb.core.guard name="_F6clEuA2Ed-73py7lbE8bg" org.eventb.core.label="grd7_1" org.eventb.core.predicate="snsrDoorPosition = DOOR_OPENED"/>
</org.eventb.core.event>
<org.eventb.core.event name="_HKjNMtqzEd-7IuFxCL4SWw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.eventb.core.label="close_door">
-<org.eventb.core.refinesEvent name="_DmsHEfMsEd-CfdFlXM8tVw" org.eventb.core.target="close_door"/>
+<org.eventb.core.refinesEvent name="__G8BcvMvEd-IqfVXadHBVg" org.eventb.core.target="close_door"/>
<org.eventb.core.guard name="_F6dMIeA2Ed-73py7lbE8bg" org.eventb.core.label="grd7_1" org.eventb.core.predicate="snsrDoorEngine = DOOR_STOP"/>
</org.eventb.core.event>
<org.eventb.core.event name="_yC2soNqwEd-O4vbSPlarTw" org.eventb.core.convergence="2" org.eventb.core.extended="true" org.even