Proof Obligation Commands

From Event-B
Revision as of 17:50, 4 March 2010 by imported>Nicolas (→‎Proof Replay on Undischarged POs)
Jump to navigationJump to search

In this page are presented various proof obligations commands that can be run from the Event-B Explorer as follows:

PO Commands.png

These commands are run on all POs located under the node(s) selected in the explorer. The selection can be a whole project, a model (context/machine), the 'Proof Obligations' node (equivalent to selecting the corresponding model), an element type (Axioms/Invariants/Events), a particular element (axm12, inv314, …), a particular PO (INITIALISATION/inv2/INV, …), or any combination of selectable nodes (multiselection using the CTRL key).

Retry Auto Provers

As the name suggests, this command runs the Auto Provers on selected POs. When the 'Prove Automatically' option is turned off, it's a convenient way to manually trigger auto proving on the desired (set of) PO(s).

It may also be used after changing the Auto Prover preferences, in order to check whether the new prover configuration allows to discharge a given (set of) PO(s).

Recalculate Auto Status

This command is related to the "auto" or "manual" PO status. This status is visible in the explorer on each PO: it is marked with a 'A' at the upper right corner of the PO icon if it was entirely discharged using the auto prover, else there is no mark, meaning that the user had to edit the proof by hand (even partially).

Launching 'Recalculate Auto Status' reruns the current auto prover on selected POs. The main aim of this command is to update the "auto"/"manual" status to reflect the current auto prover configuration. In case a proof was previously automatically discharged and is no more, it will be marked as manually created.

This is intended to be used as a post-development operation to estimate the percentage of automated proofs over a changing auto prover. It is recommended to restore to the default auto provers before running this command.

Proof Replay on Undischarged POs

It often happens during a model development that, after a given PO has been manually discharged, one makes small changes to the model in such a way that the PO is only slightly altered and would be discharged again if the proof were replayed. However, the platform does not try to replay POs on its own initiative, as this is a potentially long-running operation.

This command provides a convenient way to manually try to replay a selected (set of) undischarged PO(s).