No edit summary |
|||
Line 14: | Line 14: | ||
You can also create the the above file yourself. | You can also create the the above file yourself. | ||
Here is a typical <tt>probtclk.etool</tt> file: | Here is a typical <tt>probtclk.etool</tt> file (where PathToProB depends on your location of the ProB installation folder containing the prob and probcli binaries): | ||
<pre> | <pre> | ||
<externalTool category="component" name="ProBTclTk" label="&Animate with ProB (Tcl/Tk)"> | <externalTool category="component" name="ProBTclTk" label="&Animate with ProB (Tcl/Tk)"> | ||
Line 21: | Line 21: | ||
<command>${editor}</command> | <command>${editor}</command> | ||
<param>${componentPath}</param> | <param>${componentPath}</param> | ||
</externalTool> | </externalTool> | ||
</pre> | |||
Note, you can also [[ProB2-UI]] within Atelier-B by creating a suitable file <tt>prob2ui.etool</tt> in this extensions folder. Here is a typical file for macOS; the path needs to be adapted for your location and operating system (we plan to provide an installer within ProB2-UI): | |||
<pre> | |||
<externalTool category="component" name="ProB2UI" label="&Animate with ProB2-UI"> | |||
<toolParameter name="editor" type="tool" configure="yes" | |||
default="/Applications/Development/ProB/ProB 2 UI.app/Contents/MacOS/ProB 2 UI" /> | |||
<command>${editor}</command> | |||
<param>--machine-file</param> | |||
<param>${componentPath}</param> | |||
</externalTool> | |||
</pre> | </pre> | ||
As of version 1.3, ProB contains a much improved parser which tries be compliant with
Atelier B as much as possible.
ProB Tcl/Tk can be installed as a plugin for Atelier B, so that ProB can be launched directly from within Atelier B projects. With this you can animate and model check B machines directly from within the IDE of Atelier-B.
The easiest is to perform the menu command "Install AtelierB 4 Plugin..." in the Help menu of ProB Tcl/Tk. This will create a file called probtclk.etool in an extensions folder next to Atelier B's bbin folder. The extensions folder is created if necessary.
Note: as the layout of Atelier-B's directories has changed, you need to use ProB 1.12.0 or newer for Atelier-B 4.7.1 or newer on macOS. You can also create the the above file yourself.
Here is a typical probtclk.etool file (where PathToProB depends on your location of the ProB installation folder containing the prob and probcli binaries):
<externalTool category="component" name="ProBTclTk" label="&Animate with ProB (Tcl/Tk)"> <toolParameter name="editor" type="tool" configure="yes" default="PathToProB/StartProB.sh" /> <command>${editor}</command> <param>${componentPath}</param> </externalTool>
Note, you can also ProB2-UI within Atelier-B by creating a suitable file prob2ui.etool in this extensions folder. Here is a typical file for macOS; the path needs to be adapted for your location and operating system (we plan to provide an installer within ProB2-UI):
<externalTool category="component" name="ProB2UI" label="&Animate with ProB2-UI"> <toolParameter name="editor" type="tool" configure="yes" default="/Applications/Development/ProB/ProB 2 UI.app/Contents/MacOS/ProB 2 UI" /> <command>${editor}</command> <param>--machine-file</param> <param>${componentPath}</param> </externalTool>
Atelier B also enables to use ProB as a prover/disprover in the interactive proof window. For this you need to set the ProB_Path resource to point to probcli (command-line version of ProB). To do this you need to add the following line to the resource file of your project (replacing PATH by the the path on your machine to probcli):
ATB*PR*ProB_Path:PATH/probcli
Then you can type, e.g., the command prob(1)in the interactive proof window.
Two commands are provided within Atelier-B:
Atelier-B will call probcli using the commands -cbc_assertions_tautology_proof and -cbc_result_file after having encoded the proof obligation into the ASSERTIONS clause of a generated B machine.
The generated machine typically has the form:
MACHINE probNr SETS ... CONSTANTS ... PROPERTIES << ALL HYPOTHESES >> ASSERTIONS ( <<SELECTED HYPOTHESES >> => << PROOF GOAL >> ) END