Rodin POs and ProB

What is the relationship between Rodin proof obligations (POs) and ProB.

ProB Prover Disprover

ProB can be applied to individual POs by clicking the ProB button in the Proof Control view of Rodin.

Disprover proof control.png

See the tutorial on the ProB Prover/Disprover for more details.


One can also export the POs of a particular Event-B machine for use with the command-line version of ProB.


Rodin export pos.png

This will generate a Prolog file (with .pl ending) which can be read by probcli. It will then check the individual proof obligations. Here is an example run:

probcli GearDoor1_mch.pl
...
Disprover Run Summary: [true-9]
Project LandingGearNew
Machine GearDoor1 (exported Sun Feb 08 10:38:51 CET 2015)
Number of  POs: 9 ([INITIALISATION/safety_inv1/INV,env_start_retracting/safety_inv1/INV,env_retract_gear/safety_inv1/INV,env_start_extending/safety_inv1/INV,env_extend_gear/safety_inv1/INV,env_start_open_door/safety_inv1/INV,env_open_door/safety_inv1/INV,env_start_close_door/safety_inv1/INV,env_close_door/safety_inv1/INV])
Number of proven (within Rodin) POs: 9 ([INITIALISATION/safety_inv1/INV,env_start_retracting/safety_inv1/INV,env_retract_gear/safety_inv1/INV,env_start_extending/safety_inv1/INV,env_extend_gear/safety_inv1/INV,env_start_open_door/safety_inv1/INV,env_open_door/safety_inv1/INV,env_start_close_door/safety_inv1/INV,env_close_door/safety_inv1/INV])
ProB Disprover Analysis with timeout 300 ms
Number of proven     (by ProB) POs: 9 ([INITIALISATION/safety_inv1/INV,env_start_retracting/safety_inv1/INV,env_retract_gear/safety_inv1/INV,env_start_extending/safety_inv1/INV,env_extend_gear/safety_inv1/INV,env_start_open_door/safety_inv1/INV,env_open_door/safety_inv1/INV,env_start_close_door/safety_inv1/INV,env_close_door/safety_inv1/INV])
Number of disproven  (by ProB) POs: 0 ([])
Number of unproven   (by ProB) POs: 0 ([])