Download: Difference between revisions

Line 30: Line 30:
| 4.4.2023  
| 4.4.2023  
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.aarch64.notarized.zip Zipfile] (Arm notarized)  <br/> [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.x86_64.zip Zipfile] (Intel not yet notarized)  <br/>
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.aarch64.notarized.zip Zipfile] (Arm notarized)  <br/> [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.x86_64.zip Zipfile] (Intel not yet notarized)  <br/>
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 7 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 7 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])
|}
|}

Revision as of 13:30, 5 April 2023

Latest Release

Below are links for downloading the latest stable release of probcli (the command line version of ProB) and ProB Tcl/Tk (ProB with a graphical user interface written in Tcl/Tk). Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB. The list of changes can be found in the ProB release history.

Details of the ProB Licence can be found here. ProB is free to use and open source. For commercial support contact Michael Leuschel. In particular, we can provide access to the validation report for using ProB as a tool of class T2 or T3 within the European norm EN50128.

Platform Release Date Download Dependencies
1.12.0
Linux 4.4.2023 Tarball
Java 7 or newer (see below), Tcl/Tk 8.5 or 8.6 (see below), GraphViz
Windows 4.4.2023 Zipfile (Tcl/Tk 8.6),
Zipfile (Tcl/Tk 8.5)
Tcl/Tk 8.5 or 8.6 (see below), Java 7 or newer ( for Oracle's Java 17 read instructions below), GraphViz, Windows Installation Instructions
macOS 4.4.2023 Zipfile (Arm notarized)
Zipfile (Intel not yet notarized)

Homebrew Tap (not yet updated)

macOS 10.14 (Mojave) or newer, Tcl/Tk (see below), Java 7 or newer (see below), Graphviz (see below)

The B parser of ProB requires Java 7 or newer. More details are available below.

The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 unless stated otherwise. More details are available below. The default Tcl/Tk on macOS is broken and will result in black windows, and you have to install another version of Tcl/Tk. All releases include the command-line version probcli which does not require Tcl/Tk.

Releases are compiled for the x86_64 architecture (64-bit Intel) or for "aarch64" (64-bit Arm/Apple Silicon). The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see prior versions). If you are using an unsupported architecture or system, you may still be able to run ProB from source.

Note that: on macOS you still have to right-click on the application and use "Open", even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized.

Latest Beta Release

The latest beta release is 1.12.0-beta2 (which is older than the current final release). An official beta release always passes all of ProB's tests. However, we do not follow the stringent checklist for final releases (e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual UI tests). Also, we do not store coverage reports and other information necessary for T2 certification.

Nightly Builds

More current nightly integration builds are also available. These releases are usually updated every night and old versions are not stored.

Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey) will refuse to run them. As a workaround, you will need to run xattr -r -d com.apple.quarantine * inside the ProB directory before launching ProB. The stable and beta releases listed above are signed and notarized, so they will run without extra steps.

Automatically generated test coverage reports are also available. They are usually updated once per week.

Sourcecode

You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/

The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers

Prior Versions

Prior Versions of ProB going back to 1.3.1 are available for download here. If you are interested in still earlier releases, please have a look at the Download directory.

Other ProB tools

ProB Jupyter Kernel

You can now create Jupyter Notebooks in B using the ProB Jupyter kernel. Downloads, instructions, and source code can be found on its own page.

You can try out the ProB Jupyter kernel in your browser without installing it first. Note that notebooks are not saved permanently in this online version! To keep your notebooks, you must download them before closing the page.

ProB for Rodin

To install ProB for Rodin, first download a current version of Rodin (e.g., Rodin 3.6). Inside Rodin, choose Help -> Install New Software and choose the pre-configured ProB update site.

More detailed installation instructions and a brief tutorial are available.

ProB2-UI

Version 1.1.0 of the new JavaFX-based ProB2-UI is available. You can use these stand-alone versions which come bundled with the right Java runtime environment:

You can also download a multi-platform jar, which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).

The SVG-based visualization called VisB is included in version 1.1.0 of ProB2-UI.

Details about new features and improvements can be found in the release history, along with download links for older versions.

Snapshot builds of the current development version of ProB2-UI (1.2.0-SNAPSHOT) are also available:

The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following these instructions.

The underlying Java API ProB2 of ProB2-UI is available to Java developers via Maven Central. Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.

macOS issues

When you run the macOS app for the first time, you might have to open the app twice for ProB 2 UI to start properly. This should only happen once.

The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions. However, the multi-platform jar and snapshot app builds are not signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged. As a workaround, run this command in the folder where ProB 2 UI.app is located:

xattr -r -d com.apple.quarantine "ProB 2 UI.app"

The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:

java -jar prob2-ui-1.1.0-multi.jar

There is a 1.2.0-beta version of ProB2-UI available for macOS.

To run the multi-platform jar on macOS, we recommend using Java 15 or later. Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display. Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.

Editor Support

  • There is a package language-b-eventb available for the Atom editor. It adds syntax highlighting and snippets for the specification languages B and Event-B to Atom. It integrates with command line tool probcli to obtain error markers for syntax and type errors.

Java Requirements for B parser

The B parser of ProB 1.5.1 requires Java 7 or newer. ProB 1.5.0 is the last version to support Java 6. You can install a Java Runtime Environment (JRE) from various sources, such as Eclipse Adoptium, Azul Zulu, or your system package manager. If you want to use Orcale's Java 17 on Windows 11 you should use our latest beta or nightly release (see this issue).

Note: on some systems (Mac OS X) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 7 or 8 becomes available to the command-line tools. Type java -version to check which version is used by default for command-line tools; see also this discussion on StackOverflow. In case you have trouble starting the Java parser you can now set the JAVA_PATH preference of ProB to point to the java tool (or java.exe on Windows).

To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):

probcli -version -v

This will try and start the parser and obtain the parser version. In case Java is not correctly installed you should get an error message. If you see the error message

Unsupported major.minor version 51.0

this means you do not have Java 7 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:

probcli -p JAVA_PATH path/to/java -version -v

Tcl/Tk Requirements for ProB Tcl/Tk

ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6 depending on the version of ProB. The command-line tool probcli does not require this.

Tcl/Tk on macOS

Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken. This may result in the display of unreadable black windows or crashes in the standard file dialogs. There are various options to install Tcl/Tk:

Below are more details:

Tcl/Tk from Homebrew or MacPorts

You can install a newer Tcl/Tk (e.g., 8.6.12) using Homebrew or MacPorts. Note: In the earlier release 8.6.11 file open and file save dialogs will not work. For Homebrew the command to install thetcl-tk formula is:

 brew install tcl-tk

However, as the location of the libraries is not standard, you have to define the variable SP_TCL_DSO. You can also define and export this variable before starting ProB from the Terminal by typing this (you may have to adapt the link if you are using another version of Tcl/Tk):

export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib

If you have uses MacPorts the path is probably /opt/local/lib/libtcl.dylib. You can also set the variable by adding -DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib to the command starting ProB. You may also have to install tk-table package yourself (it is bundled with Active Tcl).

Active Tcl

The the ActiveTcl version of Tcl/Tk is automatically recognised by ProB and you do not have to set SP_TCL_DSO.

However, in Active Tcl/Tk 8.6 on macOS the double click in the "Operations View" or other views is not working correctly. You have to hit the RETURN key in the "Operations View" or right-click on an operation and select "Perform ..." to execute an operation until this is fixed. The older ersion 8.5.12 has a bug related to copying text, see also here).


Other Notes

Note: on macOS Catalina or later the Tcl/Tk menu bar is sometimes not working. Switching to another application and then back to ProB seems to solve the problem. If you see the message "macOS 11 or later required !" in the terminal when launching prob you should re-install Tcl/Tk as described above.

Tcl/Tk on Windows

We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend) and a version for Tcl/Tk 8.5. You can use for example the ActiveTcl releases. Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version! ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6. You may have to point the environment variable SP_TCL_DSO to the correct DLL before starting ProB. For Tcl/Tk 8.5 this is typically base-tcl8.5-thread-win32-x86_64.dll. You can either go to System -> Settings -> Advanced -> Environment Variables or use the setx command for this:

setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll

Tcl/Tk on Linux

On Linux you can typically install Tcl/Tk using sudo apt-get install tcl8.5 tk8.5.

On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) Tcl/Tk 8.5 or use packages from earlier releases.

On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:

ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0
ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0

Also, some of the feature require the table extension, which can be installed like this:

sudo apt install tk-table

Finally, support for .png ANIMATION_IMG declarations requires the Img package:

sudo apt install libtk-img

Graphviz Requirements

If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need GraphViz. ProB may use the command-line tool dot and a dot-file viewer such as dotty (optionally in ProB Tcl/Tk).

On Mac, the only working application to view dot files is graphviz-gui by MacPorts. To install the application do this

  • sudo port install graphviz-gui

The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference dot_viewer to this path). Some ProB commands work directly with the command-line tool dot which you can install with MacPorts like this:

  • sudo port install graphviz

On Mac you can now install the latest version of Graphviz using HomeBrew:

1. brew uninstall graphviz
2. brew install graphviz --with-gts
3. brew link --overwrite graphviz

Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed. Step3 links the binaries to /usr/local/bin. This is probably better than using the older version from Pixelglow.

Note: if you wish to use the fast rendering for large state spaces in ProB 1.7.x, you need the sfdp tool of GraphViz (ideally version 2.28 or newer with the triangulation library; when installing using brew use the option --with-gts; see the section below). As of version 1.8.1 ProB only uses the dot binary for command-line tasks (and not sfdp anymore), making use of the -Ksfdp option.

Short Release History

The full ProB release history can be found here.

29/12/2021 ProB 1.11.1 is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.

6/10/2021 ProB 1.11.0 is available. Highlights: improved support for infinite sets, operation caching (OPERATION_REUSE), faster LTL checking for safety formulas, more compact .prob files, VisB HTML export, constructive Z3 translation.

15/12/2020 ProB 1.10.0 is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.

19/2/2020 ProB 1.9.3 is available. Highlights: performance improvements, new external functions, performance monitoring.

11/11/2019 ProB 1.9.2 is available. Minor bugfix release.

8/11/2019 ProB 1.9.1 is available. Maintenance release.

12/7/2019 ProB 1.9.0 is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.

1/10/2018 ProB 1.8.2 is available. Highlights: improved error feedback, support Jupyter kernel, first support for Alloy models.

20/03/2018 ProB 1.8.0 is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.

5/10/2017 ProB 1.7.1 is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.

11/7/2017 ProB 1.7.0 is available. Highlights: improved Latex document generation, improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.

20/10/2016 ProB 1.6.1 is available. Highlights: Latex document generation, LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.

22/4/2016 ProB 1.6.0 is available. Highlights: directed model checking, Z3 available as backend, B line comments and unicode symbols, improved error messages, performance improvements.

19/2/2015 ProB 1.5.0 is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, MC/DC coverage analysis for guards and invariants, improved TLC interface, bug fixes and improvements including but not limited to the constraint solver.

29/8/2014 ProB 1.4.1, a small bugfix-only release is available. For a list of new features in 1.4.0 see below.

18/8/2014 ProB 1.4.0 is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, integration of the TLC model checker, bug fixes and performance improvements.

4/3/2013 ProB 1.3.6 is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, improved Kodkod backend and use within REPL, and many more.

8/10/2012 ProB 1.3.5 is available. Highlights: support for external and recursive functions, optional Kodkod backend, TLA+ support, performance improvements, pragmas, units inference, and many more.

30/03/2012 A first prototype of an online ProB Logic Calculator is available.

21/11/2011 ProB 1.3.4 is available. Highlights: Evaluation View and Eval window, CSP assertion checking, improved editor, 64-bit version for Mac and Linux, performance improvements, and many more.

10/02/2011 ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.

07/30/2010 ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.

12/07/2009 ProB 1.3.1 is available. Highlights: new data-structure for large sets and relations (see FM 2009), multi-level validation for Event-B, improved constraint propagation for boolean connectives, and many more.

03/20/2009 ProB 1.3.0 is available for download. Highlights: New parser and integrated typechecker, install as AtelierB plugin, improved kernel with support for large sets/relations, improved CSP support, faster LTL model checker, Undo/Redo in text editor, graphical formula viewer, user definable custom animations with gifs.