<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://prob.hhu.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=David+Gele%C3%9Fus</id>
	<title>ProB Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://prob.hhu.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=David+Gele%C3%9Fus"/>
	<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Special:Contributions/David_Gele%C3%9Fus"/>
	<updated>2026-05-27T06:54:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=ProB2-UI&amp;diff=6144</id>
		<title>ProB2-UI</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=ProB2-UI&amp;diff=6144"/>
		<updated>2026-05-07T12:52:57Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Remove border around video, which messes with the pixel sizes and doesn&amp;#039;t look nice with the blank space below the embed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ProB2-UI&#039;&#039;&#039; is the new Java-based user interface for ProB. __NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Download#ProB2-UI|Download the latest version of ProB2-UI here]]&#039;&#039;&#039;. See also the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history].&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
Compared to the original UI based on Tcl/Tk, this new UI has some unique new features:&lt;br /&gt;
* Projects which store formal models, ProB preferences, and verification settings&lt;br /&gt;
* Load Rodin models from Rodin workspaces (without having to export them within Rodin)&lt;br /&gt;
* Managing and storing multiple trace files for a model, being able to replay all traces&lt;br /&gt;
* MC/DC test-case generation&lt;br /&gt;
* A view for managing LTL formulas for a model&lt;br /&gt;
* Visualisation of models using [[VisB]] and SVG graphics&lt;br /&gt;
* An integrated view for all dot-based graph visualisations (state space, machine hierarchy, formulas, projection diagrams, enabling graphs, event refinement hierarchy, ....)&lt;br /&gt;
* An integrated view to access all table based statistics (event coverage, MC/DC coverage, read-write matrices, WD POs, ...)&lt;br /&gt;
* A multi-language interface, currently providing English, French, German and Russian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have developed a small&lt;br /&gt;
[https://media.hhu.de/video/prob2-ui-overview/732170cf5ca368239e104bb56e29d73a video highlighting the core features] (also on [https://youtu.be/HqTlr6y-hwk YouTube]) on a model the from [https://gitlab.cs.uni-duesseldorf.de/general/stups/visb-visualisation-examples visb-visualisation-examples]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Official embed URL, taken from the &amp;quot;twitter:player&amp;quot; meta tag on the video page. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- For some reason, the height parameter needs to be 10 pixels higher than the desired video height, and the iframe height needs to be 40 pixels higher still to prevent a vertical scrollbar in the iframe. --&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;768&amp;quot; height=&amp;quot;530&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen src=&amp;quot;https://media.hhu.de/media/embed?key=732170cf5ca368239e104bb56e29d73a&amp;amp;width=768&amp;amp;height=490&amp;amp;autoplay=false&amp;amp;autolightsoff=false&amp;amp;loop=false&amp;amp;chapters=false&amp;amp;related=false&amp;amp;responsive=true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Unofficial manual embed, with the URLs taken from the JS player on the video page. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- This seems to load much quicker than the official embed, and it has no size issues, but it doesn&#039;t allow changing the video resolution. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;video controls width=&amp;quot;768&amp;quot; height=&amp;quot;480&amp;quot; preload=&amp;quot;none&amp;quot; poster=&amp;quot;https://media.hhu.de/cache/3d7afd0a1fbc75fe4fc76d0be294a852.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source src=&amp;quot;https://media.hhu.de/getMedium/732170cf5ca368239e104bb56e29d73a.mp4?format=720p&amp;quot; type=&amp;quot;video/mp4&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Paper/Citing ==&lt;br /&gt;
&lt;br /&gt;
Paper: [https://link.springer.com/chapter/10.1007/978-3-030-85248-1_12 Springer Link], [https://www.researchgate.net/publication/353989368_ProB2-UI_A_Java-Based_User_Interface_for_ProB ResearchGate]&lt;br /&gt;
&lt;br /&gt;
BibTeX citation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@InProceedings{prob2ui,&lt;br /&gt;
author=&amp;quot;Bendisposto, Jens&lt;br /&gt;
and Gele{\ss}us, David&lt;br /&gt;
and Jansing, Yumiko&lt;br /&gt;
and Leuschel, Michael&lt;br /&gt;
and P{\&amp;quot;u}tz, Antonia&lt;br /&gt;
and Vu, Fabian&lt;br /&gt;
and Werth, Michelle&amp;quot;,&lt;br /&gt;
editor=&amp;quot;Lluch Lafuente, Alberto&lt;br /&gt;
and Mavridou, Anastasia&amp;quot;,&lt;br /&gt;
title=&amp;quot;ProB2-UI: A Java-Based User Interface for ProB&amp;quot;,&lt;br /&gt;
booktitle=&amp;quot;Formal Methods for Industrial Critical Systems&amp;quot;,&lt;br /&gt;
year=&amp;quot;2021&amp;quot;,&lt;br /&gt;
publisher=&amp;quot;Springer International Publishing&amp;quot;,&lt;br /&gt;
address=&amp;quot;Cham&amp;quot;,&lt;br /&gt;
pages=&amp;quot;193--201&amp;quot;,&lt;br /&gt;
abstract=&amp;quot;ProB2-UI is a modern JavaFX-based user interface for the animator, constraint solver, and model checker ProB. We present the main features of the tool, especially compared to ProB&#039;s previous user interfaces and other available tools for B, Event-B, and other formalisms. We also present some of ProB2-UI&#039;s history as well as its uses in the industry since its release in 2019.&amp;quot;,&lt;br /&gt;
isbn=&amp;quot;978-3-030-85248-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The ProB2-UI Main Window ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By default the main window is split into three vertical panes (see below).&lt;br /&gt;
&lt;br /&gt;
* In the left pane, the Operations view , showing the operations whose preconditions and guards are true in this state (the view also uses a blue circular arrow icon when an operation does not change the state);&lt;br /&gt;
* In the middle the State View, containing the current state of the B machine, listing e.g., the current values of the machine variables;&lt;br /&gt;
* In the right pane there are a variety of subviews, which can be activated:&lt;br /&gt;
** [[History_View|The History of operations leading to this state (History)]]&lt;br /&gt;
** [[Project_View|The Project view]]&lt;br /&gt;
** [[Verification_View|The Verification view]]&lt;br /&gt;
** [[Statistics_View|The Statistics view]]&lt;br /&gt;
&lt;br /&gt;
[[File:ProB2JavaFX_UI_Overview_New.png||1000px]]&lt;br /&gt;
&lt;br /&gt;
== The ProB2-UI Main Menu Bar ==&lt;br /&gt;
The menu bar contains the various commands to access the features of ProB. It includes the menus&lt;br /&gt;
*File,&lt;br /&gt;
*Edit,&lt;br /&gt;
*Formula,&lt;br /&gt;
*Consoles,&lt;br /&gt;
*Perspectives,&lt;br /&gt;
*View,&lt;br /&gt;
*Window and&lt;br /&gt;
*Help&lt;br /&gt;
[[File:File.png|none]]&lt;br /&gt;
The File submenu allows you to create a new Project, open an existing project or a machine, open recent projects shown as list and/or clear the list of recent projects, close the ProB2-UI, save your project or reload the currently running machine.&lt;br /&gt;
[[File:Edit.png|none]]&lt;br /&gt;
The Edit submenu provides two ways to edit the current machine (either in the editor provided by the ProB2-UI or in the your operating systems standard editor) and allows to edit your general and global preferences by opening a seperate window.&lt;br /&gt;
[[File:Formula.png|none]]&lt;br /&gt;
Here you can add formulas for visualization and open the history chart window.&lt;br /&gt;
[[File:Consoles.png|none]]&lt;br /&gt;
This submenu leads to two consoles, one Groovy, one B.&lt;br /&gt;
[[File:Perspectives.png|none]]&lt;br /&gt;
The Perspectives submenu allows you to change the appearance of the main view. The default view is shown at the top and two additional perspectives (Seperated History and Seperated History and Statistics) are preset. By &#039;&#039;Detach Components&#039;&#039; the view can be shown in seperate windows. &#039;&#039;Load&#039;&#039; allows you to make your own perspective by providing an FXML file containing the views but be aware that this might ruin the ability to detach components.&lt;br /&gt;
[[File:View.png|none]]&lt;br /&gt;
This submenu allows you to adjust font and button size in the ProB2-UI.&lt;br /&gt;
[[File:Help.png|none]]&lt;br /&gt;
The Help submenu provides you with help about the ProB2-UI, information about the ProB2 UI, ProB2 kernel, ProB CLI and Java version used here and a way to report issues regarding the ProB2-UI.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=ProB2-UI&amp;diff=6143</id>
		<title>ProB2-UI</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=ProB2-UI&amp;diff=6143"/>
		<updated>2026-05-07T12:48:12Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Update demo video embed to new HHU Mediathek (mediathek.hhu.de -&amp;gt; media.hhu.de)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ProB2-UI&#039;&#039;&#039; is the new Java-based user interface for ProB. __NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Download#ProB2-UI|Download the latest version of ProB2-UI here]]&#039;&#039;&#039;. See also the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history].&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
Compared to the original UI based on Tcl/Tk, this new UI has some unique new features:&lt;br /&gt;
* Projects which store formal models, ProB preferences, and verification settings&lt;br /&gt;
* Load Rodin models from Rodin workspaces (without having to export them within Rodin)&lt;br /&gt;
* Managing and storing multiple trace files for a model, being able to replay all traces&lt;br /&gt;
* MC/DC test-case generation&lt;br /&gt;
* A view for managing LTL formulas for a model&lt;br /&gt;
* Visualisation of models using [[VisB]] and SVG graphics&lt;br /&gt;
* An integrated view for all dot-based graph visualisations (state space, machine hierarchy, formulas, projection diagrams, enabling graphs, event refinement hierarchy, ....)&lt;br /&gt;
* An integrated view to access all table based statistics (event coverage, MC/DC coverage, read-write matrices, WD POs, ...)&lt;br /&gt;
* A multi-language interface, currently providing English, French, German and Russian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have developed a small&lt;br /&gt;
[https://media.hhu.de/video/prob2-ui-overview/732170cf5ca368239e104bb56e29d73a video highlighting the core features] (also on [https://youtu.be/HqTlr6y-hwk YouTube]) on a model the from [https://gitlab.cs.uni-duesseldorf.de/general/stups/visb-visualisation-examples visb-visualisation-examples]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Official embed URL, taken from the &amp;quot;twitter:player&amp;quot; meta tag on the video page. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- For some reason, the height parameter needs to be 10 pixels higher than the desired video height, and the iframe height needs to be 40 pixels higher still to prevent a vertical scrollbar in the iframe. --&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;768&amp;quot; height=&amp;quot;530&amp;quot; style=&amp;quot;border: 1px solid #ccc;&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen src=&amp;quot;https://media.hhu.de/media/embed?key=732170cf5ca368239e104bb56e29d73a&amp;amp;width=768&amp;amp;height=490&amp;amp;autoplay=false&amp;amp;autolightsoff=false&amp;amp;loop=false&amp;amp;chapters=false&amp;amp;related=false&amp;amp;responsive=true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Unofficial manual embed, with the URLs taken from the JS player on the video page. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- This seems to load much quicker than the official embed, and it has no size issues, but it doesn&#039;t allow changing the video resolution. --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;video controls width=&amp;quot;768&amp;quot; height=&amp;quot;480&amp;quot; preload=&amp;quot;none&amp;quot; poster=&amp;quot;https://media.hhu.de/cache/3d7afd0a1fbc75fe4fc76d0be294a852.png&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;source src=&amp;quot;https://media.hhu.de/getMedium/732170cf5ca368239e104bb56e29d73a.mp4?format=720p&amp;quot; type=&amp;quot;video/mp4&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/video&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Paper/Citing ==&lt;br /&gt;
&lt;br /&gt;
Paper: [https://link.springer.com/chapter/10.1007/978-3-030-85248-1_12 Springer Link], [https://www.researchgate.net/publication/353989368_ProB2-UI_A_Java-Based_User_Interface_for_ProB ResearchGate]&lt;br /&gt;
&lt;br /&gt;
BibTeX citation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@InProceedings{prob2ui,&lt;br /&gt;
author=&amp;quot;Bendisposto, Jens&lt;br /&gt;
and Gele{\ss}us, David&lt;br /&gt;
and Jansing, Yumiko&lt;br /&gt;
and Leuschel, Michael&lt;br /&gt;
and P{\&amp;quot;u}tz, Antonia&lt;br /&gt;
and Vu, Fabian&lt;br /&gt;
and Werth, Michelle&amp;quot;,&lt;br /&gt;
editor=&amp;quot;Lluch Lafuente, Alberto&lt;br /&gt;
and Mavridou, Anastasia&amp;quot;,&lt;br /&gt;
title=&amp;quot;ProB2-UI: A Java-Based User Interface for ProB&amp;quot;,&lt;br /&gt;
booktitle=&amp;quot;Formal Methods for Industrial Critical Systems&amp;quot;,&lt;br /&gt;
year=&amp;quot;2021&amp;quot;,&lt;br /&gt;
publisher=&amp;quot;Springer International Publishing&amp;quot;,&lt;br /&gt;
address=&amp;quot;Cham&amp;quot;,&lt;br /&gt;
pages=&amp;quot;193--201&amp;quot;,&lt;br /&gt;
abstract=&amp;quot;ProB2-UI is a modern JavaFX-based user interface for the animator, constraint solver, and model checker ProB. We present the main features of the tool, especially compared to ProB&#039;s previous user interfaces and other available tools for B, Event-B, and other formalisms. We also present some of ProB2-UI&#039;s history as well as its uses in the industry since its release in 2019.&amp;quot;,&lt;br /&gt;
isbn=&amp;quot;978-3-030-85248-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The ProB2-UI Main Window ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By default the main window is split into three vertical panes (see below).&lt;br /&gt;
&lt;br /&gt;
* In the left pane, the Operations view , showing the operations whose preconditions and guards are true in this state (the view also uses a blue circular arrow icon when an operation does not change the state);&lt;br /&gt;
* In the middle the State View, containing the current state of the B machine, listing e.g., the current values of the machine variables;&lt;br /&gt;
* In the right pane there are a variety of subviews, which can be activated:&lt;br /&gt;
** [[History_View|The History of operations leading to this state (History)]]&lt;br /&gt;
** [[Project_View|The Project view]]&lt;br /&gt;
** [[Verification_View|The Verification view]]&lt;br /&gt;
** [[Statistics_View|The Statistics view]]&lt;br /&gt;
&lt;br /&gt;
[[File:ProB2JavaFX_UI_Overview_New.png||1000px]]&lt;br /&gt;
&lt;br /&gt;
== The ProB2-UI Main Menu Bar ==&lt;br /&gt;
The menu bar contains the various commands to access the features of ProB. It includes the menus&lt;br /&gt;
*File,&lt;br /&gt;
*Edit,&lt;br /&gt;
*Formula,&lt;br /&gt;
*Consoles,&lt;br /&gt;
*Perspectives,&lt;br /&gt;
*View,&lt;br /&gt;
*Window and&lt;br /&gt;
*Help&lt;br /&gt;
[[File:File.png|none]]&lt;br /&gt;
The File submenu allows you to create a new Project, open an existing project or a machine, open recent projects shown as list and/or clear the list of recent projects, close the ProB2-UI, save your project or reload the currently running machine.&lt;br /&gt;
[[File:Edit.png|none]]&lt;br /&gt;
The Edit submenu provides two ways to edit the current machine (either in the editor provided by the ProB2-UI or in the your operating systems standard editor) and allows to edit your general and global preferences by opening a seperate window.&lt;br /&gt;
[[File:Formula.png|none]]&lt;br /&gt;
Here you can add formulas for visualization and open the history chart window.&lt;br /&gt;
[[File:Consoles.png|none]]&lt;br /&gt;
This submenu leads to two consoles, one Groovy, one B.&lt;br /&gt;
[[File:Perspectives.png|none]]&lt;br /&gt;
The Perspectives submenu allows you to change the appearance of the main view. The default view is shown at the top and two additional perspectives (Seperated History and Seperated History and Statistics) are preset. By &#039;&#039;Detach Components&#039;&#039; the view can be shown in seperate windows. &#039;&#039;Load&#039;&#039; allows you to make your own perspective by providing an FXML file containing the views but be aware that this might ruin the ability to detach components.&lt;br /&gt;
[[File:View.png|none]]&lt;br /&gt;
This submenu allows you to adjust font and button size in the ProB2-UI.&lt;br /&gt;
[[File:Help.png|none]]&lt;br /&gt;
The Help submenu provides you with help about the ProB2-UI, information about the ProB2 UI, ProB2 kernel, ProB CLI and Java version used here and a way to report issues regarding the ProB2-UI.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6109</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6109"/>
		<updated>2026-03-05T17:45:29Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| glibc 2.17 or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Windows 8 or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel)&amp;lt;br/&amp;gt;[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release: --&amp;gt;&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.16.0-beta1 1.16.0-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable (and some beta releases) listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1-notarized.zip macOS (Apple Silicon) application ZIP] (notarized) &amp;lt;!-- [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized! [[#macOS issues|see below]])--&amp;gt; - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.17) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6108</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6108"/>
		<updated>2026-03-05T17:43:31Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Release */ Add system requirements for Linux and Windows too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| glibc 2.17 or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Windows 8 or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release: --&amp;gt;&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.16.0-beta1 1.16.0-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable (and some beta releases) listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1-notarized.zip macOS (Apple Silicon) application ZIP] (notarized) &amp;lt;!-- [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized! [[#macOS issues|see below]])--&amp;gt; - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.17) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Handbook/General&amp;diff=6107</id>
		<title>Handbook/General</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Handbook/General&amp;diff=6107"/>
		<updated>2026-03-05T17:41:29Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Windows Installation Instructions */ Remove&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= [[Installation]] =&lt;br /&gt;
{{:Installation}}&lt;br /&gt;
&lt;br /&gt;
= [[Editors for ProB]] =&lt;br /&gt;
{{:Editors for ProB}}&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Windows_Installation_Instructions&amp;diff=6106</id>
		<title>Windows Installation Instructions</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Windows_Installation_Instructions&amp;diff=6106"/>
		<updated>2026-03-05T17:40:15Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Redirect to Installation - the Windows-specific instructions on this page are outdated, and everything else is also explained on the other page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Installation]]&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6105</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6105"/>
		<updated>2026-03-05T17:39:42Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Release */ Make list of dependencies consistent for all OSes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), [https://www.graphviz.org/download/ GraphViz] ([[#Graphviz Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release: --&amp;gt;&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.16.0-beta1 1.16.0-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable (and some beta releases) listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1-notarized.zip macOS (Apple Silicon) application ZIP] (notarized) &amp;lt;!-- [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized! [[#macOS issues|see below]])--&amp;gt; - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.17) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6104</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6104"/>
		<updated>2026-03-05T17:37:14Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Release */ Remove link to old Windows-specific instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release: --&amp;gt;&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.16.0-beta1 1.16.0-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable (and some beta releases) listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1-notarized.zip macOS (Apple Silicon) application ZIP] (notarized) &amp;lt;!-- [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized! [[#macOS issues|see below]])--&amp;gt; - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.17) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Installation&amp;diff=6103</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Installation&amp;diff=6103"/>
		<updated>2026-03-05T17:36:53Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Fix some obviously outdated information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Which version should I use? ==&lt;br /&gt;
&lt;br /&gt;
See [[The ProB Animator and Model Checker#Versions of ProB|our homepage]] for an overview of the available versions of ProB.&lt;br /&gt;
All ProB tools can be downloaded from our [[Download]] page.&lt;br /&gt;
&lt;br /&gt;
The standalone version Tcl/Tk of ProB contains a richer set of features than the Rodin version and also works on other formalisms than Event-B (e.g., classical B, Z, CSP, B||CSP, Promela, ...). If you want to do animation and model checking of Event-B models, the Rodin version might be enough. The Rodin version contains a translation tool from Rodin into Event-B package files that can be used within the standalone version of ProB.&lt;br /&gt;
Use the probcli version if you want to write batch scripts or prefer working from the command-line.&lt;br /&gt;
&lt;br /&gt;
== Installation Instruction for ProB (Standalone) ==&lt;br /&gt;
&lt;br /&gt;
* Obtain your platform specific ProB distribution from the [[download]] page. Decompress and expand the ProB directory if necessary. Do not change the location and structure of the files and directories within ProB (apart from the examples directory)! The contents of the ProB directory should look something like this:&lt;br /&gt;
 examples            lib     prob&lt;br /&gt;
 StartProB.sh        tcl&lt;br /&gt;
On Windows, the binary is called &amp;quot;ProBWin.exe&amp;quot; and not &amp;quot;prob&amp;quot;.&lt;br /&gt;
* Be sure that you have Tcl/Tk installed (see, e.g., http://www.tcl.tk/software/tcltk/). &lt;br /&gt;
With the latest version of ProB, you&lt;br /&gt;
have to install Tcl/Tk version 8.5.&lt;br /&gt;
For example, you can find a correct version of Tcl/Tk athttp://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ . &lt;br /&gt;
* To load your own B machines you also need Java 8 or newer runtime or better JDK.&lt;br /&gt;
* Note: you can skip this step if you do not wish to use the visualization commands. Install the &amp;quot;dot&amp;quot; program and &amp;quot;dotty&amp;quot; viewer from AT&amp;amp;T&#039;s Graphviz package (http://www.graphviz.org/ or http://www.research.att.com/sw/tools/graphviz/). By default, ProB will open the &amp;quot;dotty&amp;quot; program to visualize the graphs, but postscript viewers (such as gv) are also supported. So, you do not need to install dotty if you don&#039;t want to; but it is probably easiest to install the entire Graphviz package.&lt;br /&gt;
* Change to the ProB directory and then start up ProB. In Windows you can simply double-click on the ProBWin Application. For macOS and Linux, the distribution contains a script StartProB.sh for starting the prob executable (note you may have to do chmod u+x StartProB.sh before launching it from the command-line).&lt;br /&gt;
* Now you should be able to open some of the B Machines in the examples directory. You should then be able to initialize the machines and animate them. Have a look at the supplied machines in the examples directory. Have fun! Please report bugs!&lt;br /&gt;
&lt;br /&gt;
=== Checklist/Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
* Java: be sure to have Java 8 or newer installed. Otherwise you will not be able to parse your own classical B machines as our parser is written in Java.&lt;br /&gt;
&lt;br /&gt;
* Tcl/Tk: be sure to have a suitable version of TclTk installed. In&lt;br /&gt;
general you should install at least 8.5.&lt;br /&gt;
&lt;br /&gt;
* GraphViz: in order to make use of the graphical visualization features, you need to install a version of GraphViz suitable for your architecture. Then use the command &amp;quot;Graphical Viewer Preferences...&amp;quot; in the Preferences Menu to set or check the following preferences:&lt;br /&gt;
** Path/Command for dot program&lt;br /&gt;
** Path/Command for dot viewer (e.g., dotty)&lt;br /&gt;
Note: you can use the &amp;quot;Pick&amp;quot; button to locate the dot program and the dot viewer. &lt;br /&gt;
See more information about the [[Graphical Viewer]].&lt;br /&gt;
&lt;br /&gt;
[[Category:User Manual]]&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=6102</id>
		<title>The ProB Animator and Model Checker</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=6102"/>
		<updated>2026-03-05T17:20:20Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;60%&amp;quot; style=&amp;quot;padding-right:20px;&amp;quot; |&lt;br /&gt;
ProB is an animator, constraint solver and model checker for the [http://www.clearsy.com/en/our-specific-know-how/b-method/?lang=en B-Method]. The constraint-solving capabilities of ProB can be used for animation, model finding, [[Constraint_Based_Checking|constraint-based symbolic checking]] and [[Test_Case_Generation|test-case generation]].&lt;br /&gt;
&lt;br /&gt;
The B language is rooted in predicate logic, arithmetic and set theory and provides support for data structures such as (higher-order) relations, functions and sequences.&lt;br /&gt;
In addition to the B language, ProB also supports [http://www.event-b.org/ Event-B], [http://en.wikipedia.org/wiki/Communicating_sequential_processes CSP-M],&lt;br /&gt;
[http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html TLA+], and [http://en.wikipedia.org/wiki/Z_notation Z]. ProB can be installed within [http://sourceforge.net/projects/rodin-b-sharp/ Rodin].&lt;br /&gt;
ProB can also be used as a [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel] to generate interactive notebooks.&lt;br /&gt;
&lt;br /&gt;
ProB is being used within Alstom, ClearSy, Siemens, Thales and several other companies for [http://www.data-validation.fr data validation] of complicated properties for safety critical systems. It was used, e.g., for Paris Line 1, Sao Paulo line 4, Barcelona line 9 and many more.&lt;br /&gt;
ProB is certified T2 SIL4 according to the Cenelec EN 50128 standard for use at Thales.&lt;br /&gt;
In this [https://www.youtube.com/watch?v=K6mS6akRmvA video from the Deutsche Bahn] you can see ProB animating a formal B model of the ETCS hybrid-level 3 principles in real-time, controlling two trains.&lt;br /&gt;
Michael Leuschel and his group have won the  first edition of the &amp;lt;b&amp;gt;[https://prologyear.logicprogramming.org/ColmerauerPrize.html Alain Colmerauer Prize]&amp;lt;/b&amp;gt; for ProB.&lt;br /&gt;
For commercial support contact [http://www.stups.uni-duesseldorf.de/~leuschel/ Michael Leuschel].&lt;br /&gt;
&lt;br /&gt;
=== Versions of ProB ===&lt;br /&gt;
&lt;br /&gt;
Several versions of ProB are available. They all make use of the same Prolog core (see below).&lt;br /&gt;
&lt;br /&gt;
* A command-line tool called [[Using the Command-Line Version of ProB|probcli]]. It is distributed with the standard [[download]].&lt;br /&gt;
* The original graphical user interface ProB Tcl/Tk. It is distributed with the standard [[download]].&lt;br /&gt;
* The new graphical user interface [[ProB2-UI]] based on JavaFX and the ProB Java API. It is available as a  [[Download#ProB2-UI|separate download]]. It contains [[VisB]] for SVG-based visualizations (as a successor to BMotionStudio).&lt;br /&gt;
* [[ProB for Event-B|ProB for use within Rodin]], the toolset for Event-B. It is [[Download#ProB for Rodin|available as a plugin]].&lt;br /&gt;
* The [[ProB Java API]] (aka &amp;quot;ProB 2 kernel&amp;quot;) for using ProB from Java and other JVM languages. It is available via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
* A [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel kernel for Jupyter], allowing to use B and ProB from within Jupyter notebooks. It is available via [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel a seperate installation procedure].&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
The core of ProB is implemented in [http://www.sics.se/isl/sicstuswww/site/index.html SICStus Prolog] (but can be run without a SICStus Prolog license). The ProB constraint solver is implemented using co-routining and the CLP(FD) finite domain library of SICStus. An alternate [[Using_ProB_with_KODKOD | constraint solver based on Kodkod (and thus SAT)]] is also available within ProB, as is [[Using_ProB_with_Z3|an integration with the SMT solver Z3]]. An alternate [[TLC|model checking engine (using TLC)]] well-suited for lower level B specifications is available as is an integration with [https://github.com/utwente-fmt/ltsmin/releases LTSmin] as [[LTSmin|model checking backend]].&lt;br /&gt;
The [[ProBLicence | ProB Licence can be found here]].&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; style=&amp;quot;background:#EDF2F2;padding:15px;&amp;quot; | &#039;&#039;&#039;News&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression. Interactive proof via animator interface for Rodin POs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements. Profiling via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings.  READ_JSON and other external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-11-10&#039;&#039;&#039;&lt;br /&gt;
Michael Leuschel and his group win [https://prologyear.logicprogramming.org/ColmerauerPrize.html  first edition of Colmerauer Prize] for ProB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Identifiers between backquotes, flexible JSON trace replay, DPLLT solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.0]] is available. Improved support for infinite sets, operation caching, faster LTL checking of safety formulas, more compact .prob files, [[VisB|VisB]] HTML export, constructive Z3 translation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-01-26&#039;&#039;&#039;&lt;br /&gt;
[[Download#ProB2-UI_using_Java_FX|ProB2-UI 1.1.0]] is available, contains [[VisB|VisB]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]]. Highlights: [[Well-Definedness_Checking|well-definedness prover]], [[Summary_of_B_Syntax#Reals:|REAL datatype]], -lint comand for [[Editors_for_ProB#VSCode|VSCode]] and [[Editors_for_ProB#Atom|Atom]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]]. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]]. Highlights: Unicode support, regular expression library, memoization. [[Download#ProB2_UI_using_Java_FX|New ProB2 UI]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]]. Highlights: [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] Highlights:  [[Tips:_B_Idioms |LET and IF-THEN-ELSE for expressions and predicates]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 as backend]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[DownloadPriorVersions |ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, [[TLC|integration of the TLC model checker]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039; [[ProB_Logic_Calculator|ProB Logic Calculator]] available.&lt;br /&gt;
&lt;br /&gt;
[[Download#Short Release History|More in Release History]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
ProB covers a [[Summary of B Syntax|large part of B]], and we are striving towards full coverage of Atelier B constructs. ProB supports B features such as non-deterministic operations, arbitrary quantification, sets, sequences, functions, lambda abstractions, set comprehensions, records, and many more. ProB does support multiple machines, refinements, and implementations. ProB can also be used for automated [[Refinement Checking|refinement checking]] and [[LTL Model Checking|LTL model checking]]. It also [[CSP-M|supports CSP-M]] process descriptions, to be used on their own or to guide B machines for specification and property validation. The state space of the specifications can be [[Graphical Viewer|graphically visualized]]. &lt;br /&gt;
ProB supports Z specifications (ProB in this context is sometimes called [[ProZ]]) as well as [[TLA|TLA+ specifications]]. &lt;br /&gt;
ProB can be used within Rodin and [http://www.atelierb.eu/en/ Atelier-B as a disprover and prover].&lt;br /&gt;
ProB supports also importing, validating and visualising [https://www.railml.org/en/applications/detail/prob.html railML data].&lt;br /&gt;
&lt;br /&gt;
[[File:ProBAtAGlance.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
=== Citing ProB ===&lt;br /&gt;
&lt;br /&gt;
The initial conference publication was:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael Butler (2003): ProB: A Model Checker for B. In Keijiro Araki, Stefania Gnesi &amp;amp; Dino Mandrioli, editors: FME 2003: Formal Methods, LNCS 2805, Springer-Verlag, pp. 855–874, doi:10.1007/978-3-540-45236-2 46.&lt;br /&gt;
&lt;br /&gt;
A later journal article describes ProB in more detail:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael J. Butler (2008): ProB: an automated analysis toolset for the B method. STTT 10(2), pp. 185–203. Available at [http://dx.doi.org/10.1007/s10009-007-0063-9 http://dx.doi.org/10.1007/s10009-007-0063-9].&lt;br /&gt;
&lt;br /&gt;
For convenience we also provide [[Citing ProB|Bibtex entries for the above references]].&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=6101</id>
		<title>The ProB Animator and Model Checker</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=6101"/>
		<updated>2026-03-05T17:18:06Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Versions of ProB */ Update links and simplify some wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;60%&amp;quot; style=&amp;quot;padding-right:20px;&amp;quot; |&lt;br /&gt;
ProB is an animator, constraint solver and model checker for the [http://www.clearsy.com/en/our-specific-know-how/b-method/?lang=en B-Method]. The constraint-solving capabilities of ProB can be used for animation, model finding, [[Constraint_Based_Checking|constraint-based symbolic checking]] and [[Test_Case_Generation|test-case generation]].&lt;br /&gt;
&lt;br /&gt;
The B language is rooted in predicate logic, arithmetic and set theory and provides support for data structures such as (higher-order) relations, functions and sequences.&lt;br /&gt;
In addition to the B language, ProB also supports [http://www.event-b.org/ Event-B], [http://en.wikipedia.org/wiki/Communicating_sequential_processes CSP-M],&lt;br /&gt;
[http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html TLA+], and [http://en.wikipedia.org/wiki/Z_notation Z]. ProB can be installed within [http://sourceforge.net/projects/rodin-b-sharp/ Rodin].&lt;br /&gt;
ProB can also be used as a [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel] to generate interactive notebooks.&lt;br /&gt;
&lt;br /&gt;
ProB is being used within Alstom, ClearSy, Siemens, Thales and several other companies for [http://www.data-validation.fr data validation] of complicated properties for safety critical systems. It was used, e.g., for Paris Line 1, Sao Paulo line 4, Barcelona line 9 and many more.&lt;br /&gt;
ProB is certified T2 SIL4 according to the Cenelec EN 50128 standard for use at Thales.&lt;br /&gt;
In this [https://www.youtube.com/watch?v=K6mS6akRmvA video from the Deutsche Bahn] you can see ProB animating a formal B model of the ETCS hybrid-level 3 principles in real-time, controlling two trains.&lt;br /&gt;
Michael Leuschel and his group have won the  first edition of the &amp;lt;b&amp;gt;[https://prologyear.logicprogramming.org/ColmerauerPrize.html Alain Colmerauer Prize]&amp;lt;/b&amp;gt; for ProB.&lt;br /&gt;
For commercial support contact [http://www.stups.uni-duesseldorf.de/~leuschel/ Michael Leuschel].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Versions of ProB ===&lt;br /&gt;
&lt;br /&gt;
Several versions of ProB are available. They all make use of the same Prolog core (see below).&lt;br /&gt;
&lt;br /&gt;
* A command-line tool called [[Using the Command-Line Version of ProB|probcli]]. It is distributed with the standard [[download]].&lt;br /&gt;
* The original graphical user interface ProB Tcl/Tk. It is distributed with the standard [[download]].&lt;br /&gt;
* The new graphical user interface [[ProB2-UI]] based on JavaFX and the ProB Java API. It is available as a  [[Download#ProB2-UI|separate download]]. It contains [[VisB]] for SVG-based visualizations (as a successor to BMotionStudio).&lt;br /&gt;
* [[ProB for Event-B|ProB for use within Rodin]], the toolset for Event-B. It is [[Download#ProB for Rodin|available as a plugin]].&lt;br /&gt;
* The [[ProB Java API]] (aka &amp;quot;ProB 2 kernel&amp;quot;) for using ProB from Java and other JVM languages. It is available via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
* A [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel kernel for Jupyter], allowing to use B and ProB from within Jupyter notebooks. It is available via [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel a seperate installation procedure].&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
The core of ProB is implemented in [http://www.sics.se/isl/sicstuswww/site/index.html SICStus Prolog] (but can be run without a SICStus Prolog license). The ProB constraint solver is implemented using co-routining and the CLP(FD) finite domain library of SICStus. An alternate [[Using_ProB_with_KODKOD | constraint solver based on Kodkod (and thus SAT)]] is also available within ProB, as is [[Using_ProB_with_Z3|an integration with the SMT solver Z3]]. An alternate [[TLC|model checking engine (using TLC)]] well-suited for lower level B specifications is available as is an integration with [https://github.com/utwente-fmt/ltsmin/releases LTSmin] as [[LTSmin|model checking backend]].&lt;br /&gt;
The [[ProBLicence | ProB Licence can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; style=&amp;quot;background:#EDF2F2;padding:15px;&amp;quot; | &#039;&#039;&#039;News&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression. Interactive proof via animator interface for Rodin POs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements. Profiling via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings.  READ_JSON and other external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-11-10&#039;&#039;&#039;&lt;br /&gt;
Michael Leuschel and his group win [https://prologyear.logicprogramming.org/ColmerauerPrize.html  first edition of Colmerauer Prize] for ProB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Identifiers between backquotes, flexible JSON trace replay, DPLLT solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.0]] is available. Improved support for infinite sets, operation caching, faster LTL checking of safety formulas, more compact .prob files, [[VisB|VisB]] HTML export, constructive Z3 translation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-01-26&#039;&#039;&#039;&lt;br /&gt;
[[Download#ProB2-UI_using_Java_FX|ProB2-UI 1.1.0]] is available, contains [[VisB|VisB]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]]. Highlights: [[Well-Definedness_Checking|well-definedness prover]], [[Summary_of_B_Syntax#Reals:|REAL datatype]], -lint comand for [[Editors_for_ProB#VSCode|VSCode]] and [[Editors_for_ProB#Atom|Atom]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]]. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]]. Highlights: Unicode support, regular expression library, memoization. [[Download#ProB2_UI_using_Java_FX|New ProB2 UI]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]]. Highlights: [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] Highlights:  [[Tips:_B_Idioms |LET and IF-THEN-ELSE for expressions and predicates]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 as backend]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[DownloadPriorVersions |ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, [[TLC|integration of the TLC model checker]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039; [[ProB_Logic_Calculator|ProB Logic Calculator]] available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
[[Download#Short Release History|More in Release History]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
ProB covers a [[Summary of B Syntax|large part of B]], and we are striving towards full coverage of Atelier B constructs. ProB supports B features such as non-deterministic operations, arbitrary quantification, sets, sequences, functions, lambda abstractions, set comprehensions, records, and many more. ProB does support multiple machines, refinements, and implementations. ProB can also be used for automated [[Refinement Checking|refinement checking]] and [[LTL Model Checking|LTL model checking]]. It also [[CSP-M|supports CSP-M]] process descriptions, to be used on their own or to guide B machines for specification and property validation. The state space of the specifications can be [[Graphical Viewer|graphically visualized]]. &lt;br /&gt;
ProB supports Z specifications (ProB in this context is sometimes called [[ProZ]]) as well as [[TLA|TLA+ specifications]]. &lt;br /&gt;
ProB can be used within Rodin and [http://www.atelierb.eu/en/ Atelier-B as a disprover and prover].&lt;br /&gt;
ProB supports also importing, validating and visualising [https://www.railml.org/en/applications/detail/prob.html railML data].&lt;br /&gt;
&lt;br /&gt;
[[File:ProBAtAGlance.png| center |500px]]&lt;br /&gt;
&lt;br /&gt;
=== Citing ProB ===&lt;br /&gt;
&lt;br /&gt;
The initial conference publication was:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael Butler (2003): ProB: A Model Checker for B. In Keijiro Araki, Stefania Gnesi &amp;amp; Dino Mandrioli, editors: FME 2003: Formal Methods, LNCS 2805, Springer-Verlag, pp. 855–874, doi:10.1007/978-3-540-45236-2 46.&lt;br /&gt;
&lt;br /&gt;
A later journal article describes ProB in more detail:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael J. Butler (2008): ProB: an automated analysis toolset for the B method. STTT 10(2), pp. 185–203. Available at [http://dx.doi.org/10.1007/s10009-007-0063-9 http://dx.doi.org/10.1007/s10009-007-0063-9].&lt;br /&gt;
&lt;br /&gt;
For convenience we also provide  [[Citing ProB|Bibtex entries for the above references]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=ProB2-UI&amp;diff=6100</id>
		<title>ProB2-UI</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=ProB2-UI&amp;diff=6100"/>
		<updated>2026-03-05T17:12:00Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Download */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;ProB2-UI&#039;&#039;&#039; is the new Java-based user interface for ProB. __NOTOC__&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Download#ProB2-UI|Download the latest version of ProB2-UI here]]&#039;&#039;&#039;. See also the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history].&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
Compared to the original UI based on Tcl/Tk, this new UI has some unique new features:&lt;br /&gt;
* Projects which store formal models, ProB preferences, and verification settings&lt;br /&gt;
* Load Rodin models from Rodin workspaces (without having to export them within Rodin)&lt;br /&gt;
* Managing and storing multiple trace files for a model, being able to replay all traces&lt;br /&gt;
* MC/DC test-case generation&lt;br /&gt;
* A view for managing LTL formulas for a model&lt;br /&gt;
* Visualisation of models using [[VisB]] and SVG graphics&lt;br /&gt;
* An integrated view for all dot-based graph visualisations (state space, machine hierarchy, formulas, projection diagrams, enabling graphs, event refinement hierarchy, ....)&lt;br /&gt;
* An integrated view to access all table based statistics (event coverage, MC/DC coverage, read-write matrices, WD POs, ...)&lt;br /&gt;
* A multi-language interface, currently providing English, French, German and Russian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We have developed a small&lt;br /&gt;
[https://mediathek.hhu.de/watch/1c7946da-3042-423f-a1c3-06833f348ec2 video highlighting the core features] (also on [https://youtu.be/HqTlr6y-hwk YouTube]) on a model the from [https://gitlab.cs.uni-duesseldorf.de/general/stups/visb-visualisation-examples visb-visualisation-examples]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&#039;570&#039; height=&#039;321&#039; style=&#039;width: 570px; height: 321px; border: 1px solid #ccc;&#039; src=&#039;https://mediathek.hhu.de/embed/1c7946da-3042-423f-a1c3-06833f348ec2&#039; frameborder=&#039;0&#039; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Paper/Citing ==&lt;br /&gt;
&lt;br /&gt;
Paper: [https://link.springer.com/chapter/10.1007/978-3-030-85248-1_12 Springer Link], [https://www.researchgate.net/publication/353989368_ProB2-UI_A_Java-Based_User_Interface_for_ProB ResearchGate]&lt;br /&gt;
&lt;br /&gt;
BibTeX citation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@InProceedings{prob2ui,&lt;br /&gt;
author=&amp;quot;Bendisposto, Jens&lt;br /&gt;
and Gele{\ss}us, David&lt;br /&gt;
and Jansing, Yumiko&lt;br /&gt;
and Leuschel, Michael&lt;br /&gt;
and P{\&amp;quot;u}tz, Antonia&lt;br /&gt;
and Vu, Fabian&lt;br /&gt;
and Werth, Michelle&amp;quot;,&lt;br /&gt;
editor=&amp;quot;Lluch Lafuente, Alberto&lt;br /&gt;
and Mavridou, Anastasia&amp;quot;,&lt;br /&gt;
title=&amp;quot;ProB2-UI: A Java-Based User Interface for ProB&amp;quot;,&lt;br /&gt;
booktitle=&amp;quot;Formal Methods for Industrial Critical Systems&amp;quot;,&lt;br /&gt;
year=&amp;quot;2021&amp;quot;,&lt;br /&gt;
publisher=&amp;quot;Springer International Publishing&amp;quot;,&lt;br /&gt;
address=&amp;quot;Cham&amp;quot;,&lt;br /&gt;
pages=&amp;quot;193--201&amp;quot;,&lt;br /&gt;
abstract=&amp;quot;ProB2-UI is a modern JavaFX-based user interface for the animator, constraint solver, and model checker ProB. We present the main features of the tool, especially compared to ProB&#039;s previous user interfaces and other available tools for B, Event-B, and other formalisms. We also present some of ProB2-UI&#039;s history as well as its uses in the industry since its release in 2019.&amp;quot;,&lt;br /&gt;
isbn=&amp;quot;978-3-030-85248-1&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The ProB2-UI Main Window ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
By default the main window is split into three vertical panes (see below).&lt;br /&gt;
&lt;br /&gt;
* In the left pane, the Operations view , showing the operations whose preconditions and guards are true in this state (the view also uses a blue circular arrow icon when an operation does not change the state);&lt;br /&gt;
* In the middle the State View, containing the current state of the B machine, listing e.g., the current values of the machine variables;&lt;br /&gt;
* In the right pane there are a variety of subviews, which can be activated:&lt;br /&gt;
** [[History_View|The History of operations leading to this state (History)]]&lt;br /&gt;
** [[Project_View|The Project view]]&lt;br /&gt;
** [[Verification_View|The Verification view]]&lt;br /&gt;
** [[Statistics_View|The Statistics view]]&lt;br /&gt;
&lt;br /&gt;
[[File:ProB2JavaFX_UI_Overview_New.png||1000px]]&lt;br /&gt;
&lt;br /&gt;
== The ProB2-UI Main Menu Bar ==&lt;br /&gt;
The menu bar contains the various commands to access the features of ProB. It includes the menus&lt;br /&gt;
*File,&lt;br /&gt;
*Edit,&lt;br /&gt;
*Formula,&lt;br /&gt;
*Consoles,&lt;br /&gt;
*Perspectives,&lt;br /&gt;
*View,&lt;br /&gt;
*Window and&lt;br /&gt;
*Help&lt;br /&gt;
[[File:File.png|none]]&lt;br /&gt;
The File submenu allows you to create a new Project, open an existing project or a machine, open recent projects shown as list and/or clear the list of recent projects, close the ProB2-UI, save your project or reload the currently running machine.&lt;br /&gt;
[[File:Edit.png|none]]&lt;br /&gt;
The Edit submenu provides two ways to edit the current machine (either in the editor provided by the ProB2-UI or in the your operating systems standard editor) and allows to edit your general and global preferences by opening a seperate window.&lt;br /&gt;
[[File:Formula.png|none]]&lt;br /&gt;
Here you can add formulas for visualization and open the history chart window.&lt;br /&gt;
[[File:Consoles.png|none]]&lt;br /&gt;
This submenu leads to two consoles, one Groovy, one B.&lt;br /&gt;
[[File:Perspectives.png|none]]&lt;br /&gt;
The Perspectives submenu allows you to change the appearance of the main view. The default view is shown at the top and two additional perspectives (Seperated History and Seperated History and Statistics) are preset. By &#039;&#039;Detach Components&#039;&#039; the view can be shown in seperate windows. &#039;&#039;Load&#039;&#039; allows you to make your own perspective by providing an FXML file containing the views but be aware that this might ruin the ability to detach components.&lt;br /&gt;
[[File:View.png|none]]&lt;br /&gt;
This submenu allows you to adjust font and button size in the ProB2-UI.&lt;br /&gt;
[[File:Help.png|none]]&lt;br /&gt;
The Help submenu provides you with help about the ProB2-UI, information about the ProB2 UI, ProB2 kernel, ProB CLI and Java version used here and a way to report issues regarding the ProB2-UI.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6099</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6099"/>
		<updated>2026-03-05T17:11:49Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */ Rename section to just &amp;quot;ProB2-UI&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release: --&amp;gt;&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.16.0-beta1 1.16.0-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable (and some beta releases) listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1-notarized.zip macOS (Apple Silicon) application ZIP] (notarized) &amp;lt;!-- [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized! [[#macOS issues|see below]])--&amp;gt; - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.17) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.17/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6080</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6080"/>
		<updated>2026-01-23T13:40:38Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */ Removed link to snapshot version of multi-platform jar, which is not built anymore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release:&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX) ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6078</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6078"/>
		<updated>2026-01-22T13:10:08Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release:&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX) ===&lt;br /&gt;
&lt;br /&gt;
The current release of the new JavaFX-based [[ProB2-UI]] is version 1.3.1. Installers are available for the following platforms:&lt;br /&gt;
&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Linux (x86_64) .deb package] - requires glibc 2.17 or later (e. g. Debian 8 &amp;quot;jessie&amp;quot; or later, or Ubuntu 14.04 &amp;quot;trusty&amp;quot; or later)&lt;br /&gt;
&lt;br /&gt;
These installers include all necessary dependencies - you do not need to install a Java runtime manually.&lt;br /&gt;
&lt;br /&gt;
We also provide a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar] build, which requires an existing installation of Java 21 or later, but works without further installation on all supported platforms. &#039;&#039;&#039;The multi-platform jar is deprecated and will be removed in a future release.&#039;&#039;&#039; It only supports the x86_64 architecture, so it cannot run on macOS on Apple Silicon, unless you install an x86_64 JRE.&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.4.0-SNAPSHOT-multi.jar Multi-platform jar snapshot] (deprecated)&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
Recent ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar, all snapshot app builds, and older release app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround:&lt;br /&gt;
&lt;br /&gt;
* On macOS 15 (Sequoia) or later: Open the System Settings, go to &amp;quot;Privacy &amp;amp; Security&amp;quot;, and next to &amp;quot;ProB2-UI was blocked to protect your Mac&amp;quot;, and click on &amp;quot;Open Anyway&amp;quot;.&lt;br /&gt;
* On macOS 14 (Sonoma) or earlier: Right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog. If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&lt;br /&gt;
For details, see [https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unknown-developer-mh40616/mac &amp;quot;Open a Mac app from an unknown developer&amp;quot;] and [https://support.apple.com/en-us/102445#openanyway &amp;quot;Safely open apps on your Mac&amp;quot;] on Apple&#039;s support website.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6077</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6077"/>
		<updated>2026-01-22T12:32:41Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release:&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.4.0-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6076</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6076"/>
		<updated>2026-01-22T12:32:03Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Beta Release */ Commented out, because the last beta release is multiple versions out of date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- Commented out while there is no current beta release:&lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.4.0-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6075</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6075"/>
		<updated>2026-01-22T12:30:05Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Latest Release */ Reworded architecture explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
macOS releases of ProB are universal binaries that support both &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon) and &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel) architectures.&lt;br /&gt;
Windows and Linux releases are compiled only for &#039;&#039;&#039;x86_64&#039;&#039;&#039; (64-bit Intel).&lt;br /&gt;
&lt;br /&gt;
The last version built for the x86 architecture (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.4.0-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6074</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6074"/>
		<updated>2026-01-22T12:17:52Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */ Update links for ProB2-UI 1.3.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-1.3.1.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui_1.3.1_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.1/prob2-ui-1.3.1-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.4.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.4.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.4.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.4.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.4.0_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.4.0-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6073</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6073"/>
		<updated>2026-01-09T15:59:44Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Java Requirements for B Parser */ Announce that ProB will require Java 17 at some point&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-1.3.0.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-aarch64-1.3.0.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-x86_64-1.3.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/prob2-ui_1.3.0_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/prob2-ui-1.3.0-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.3.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.3.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.3.1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.3.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, 21, 25, etc. are also fully supported.&lt;br /&gt;
&#039;&#039;&#039;A future ProB release will require Java 17 or newer.&#039;&#039;&#039;&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/ Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6072</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6072"/>
		<updated>2026-01-09T15:53:09Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Editor Support */ Spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.12.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 21.12.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-1.3.0.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-aarch64-1.3.0.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-x86_64-1.3.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/prob2-ui_1.3.0_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/prob2-ui-1.3.0-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.3.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-1.3.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB2-UI-x86_64-1.3.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.3.1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.3.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB2-UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB2-UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB2-UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB2-UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
==== VS Code ====&lt;br /&gt;
There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the Visual Studio Code (VS Code) editor. It integrates with the [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/vscode_plugin Download for manual installation]&lt;br /&gt;
&lt;br /&gt;
==== Vim ====&lt;br /&gt;
A [https://github.com/bivab/prob.vim Vim plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. Vim has built-in syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
==== BBEdit ====&lt;br /&gt;
Some [https://github.com/leuschel/bbedit-prob BBEdit language modules for B, TLA+, CSP and Prolog] are available; these do not use the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-12-21&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.1]] is available. Automatic use of operation reuse and compression for model checking. STORE_DETAILED_TRANSITION_INFOS preference and calls LTL property. Interactive proof via animator interface for Rodin PO files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2025-06-26&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.15.0]] is available. Interactive trace replay. Many [[VisB#VisB_DEFINITIONS |VisB]] improvements (use definition files for all models, grouping of VISB objects in a single definition, VISB_CLICK_META_INFOS, ...). Profiling can be turned on via PROFILING_INFO preference. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Sefm2015&amp;diff=6037</id>
		<title>Sefm2015</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Sefm2015&amp;diff=6037"/>
		<updated>2025-12-16T16:51:03Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Summaries */ Fix the other link too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Benchmarks for the ProB (Dis)prover}}&lt;br /&gt;
[[Category:ProB Disprover]]&lt;br /&gt;
&lt;br /&gt;
We benchmarked the ProB disprove for an article currently under consideration for SEFM 2015.&lt;br /&gt;
&lt;br /&gt;
== Raw Data ==&lt;br /&gt;
All raw data is available as csv files from [https://www3.hhu.de/stups/models/sefm2015_disprover/raw/ here].&lt;br /&gt;
A zip file containing all csv files is available [https://www3.hhu.de/stups/models/sefm2015_disprover/raw/rawdata.zip here].&lt;br /&gt;
&lt;br /&gt;
== Data Visualisations ==&lt;br /&gt;
Due to the page limit, we could not give all the diagrams and visualisation of the benchmark results in the article.&lt;br /&gt;
They are available here:&lt;br /&gt;
=== Landing Gears ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial1_provers_only.pdf Su and Abrial, Landing Gear Model 1, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial1_tactic.pdf Su and Abrial, Landing Gear Model 1, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial2_provers_only.pdf Su and Abrial, Landing Gear Model 2, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial2_tactic.pdf Su and Abrial, Landing Gear Model 2, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial3_provers_only.pdf Su and Abrial, Landing Gear Model 3, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial3_tactic.pdf Su and Abrial, Landing Gear Model 3, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/landinggearfinal_provers_only.pdf Hansen et. al., Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/landinggearfinal_tactic.pdf Hansen et. al.,  Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/mammarlaleau_provers_only.pdf Mammar and Laleau, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/mammarlaleau_tactic.pdf Mammar and Laleau,  Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/nantes_provers_only.pdf André, Attiogbé and Lanoix, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/nantes_tactic.pdf André, Attiogbé and Lanoix,  Tactics]&lt;br /&gt;
&lt;br /&gt;
=== Further Models ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/canbus_provers_only.pdf Colley, Canbus, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/canbus_tactic.pdf Colley, Canbus, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_provers_only.pdf Andriamiarina and Méry, Graphcoloring, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_tactic.pdf Andriamiarina and Méry, Graphcoloring, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_provers_only.pdf Wiegard, Stuttgart 21, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_tactic.pdf Wiegard, Stuttgart 21, Tactics]&lt;br /&gt;
&lt;br /&gt;
=== Summaries ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/tactic_landinggears.pdf Tactics on Landing Gears]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/tactic_all_models.pdf Tactics on all Models]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/provers_alone_landinggears.pdf Provers alone on Landing Gears]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/provers_alone_all_models.pdf Provers alone on all Models]&lt;br /&gt;
&lt;br /&gt;
=== Surplus of ProB ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/surplus.pdf Surplus of ProB (added last)]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/surplus2.pdf Surplus of ProB (added first)]&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Sefm2015&amp;diff=6036</id>
		<title>Sefm2015</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Sefm2015&amp;diff=6036"/>
		<updated>2025-12-16T16:49:48Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Summaries */ Fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Benchmarks for the ProB (Dis)prover}}&lt;br /&gt;
[[Category:ProB Disprover]]&lt;br /&gt;
&lt;br /&gt;
We benchmarked the ProB disprove for an article currently under consideration for SEFM 2015.&lt;br /&gt;
&lt;br /&gt;
== Raw Data ==&lt;br /&gt;
All raw data is available as csv files from [https://www3.hhu.de/stups/models/sefm2015_disprover/raw/ here].&lt;br /&gt;
A zip file containing all csv files is available [https://www3.hhu.de/stups/models/sefm2015_disprover/raw/rawdata.zip here].&lt;br /&gt;
&lt;br /&gt;
== Data Visualisations ==&lt;br /&gt;
Due to the page limit, we could not give all the diagrams and visualisation of the benchmark results in the article.&lt;br /&gt;
They are available here:&lt;br /&gt;
=== Landing Gears ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial1_provers_only.pdf Su and Abrial, Landing Gear Model 1, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial1_tactic.pdf Su and Abrial, Landing Gear Model 1, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial2_provers_only.pdf Su and Abrial, Landing Gear Model 2, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial2_tactic.pdf Su and Abrial, Landing Gear Model 2, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial3_provers_only.pdf Su and Abrial, Landing Gear Model 3, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/abrial3_tactic.pdf Su and Abrial, Landing Gear Model 3, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/landinggearfinal_provers_only.pdf Hansen et. al., Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/landinggearfinal_tactic.pdf Hansen et. al.,  Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/mammarlaleau_provers_only.pdf Mammar and Laleau, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/mammarlaleau_tactic.pdf Mammar and Laleau,  Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/nantes_provers_only.pdf André, Attiogbé and Lanoix, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/nantes_tactic.pdf André, Attiogbé and Lanoix,  Tactics]&lt;br /&gt;
&lt;br /&gt;
=== Further Models ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/canbus_provers_only.pdf Colley, Canbus, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/canbus_tactic.pdf Colley, Canbus, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_provers_only.pdf Andriamiarina and Méry, Graphcoloring, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_tactic.pdf Andriamiarina and Méry, Graphcoloring, Tactics]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_provers_only.pdf Wiegard, Stuttgart 21, Provers alone]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/graphcoloring_tactic.pdf Wiegard, Stuttgart 21, Tactics]&lt;br /&gt;
&lt;br /&gt;
=== Summaries ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/tactic_landinggears.pdf Tactics on Landing Gears]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/tactic_all_models.pdf Tactics on all Models]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/provers_alone_landiggears.pdf Provers alone on Landing Gears]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/provers_alone_all_models.pdf Provers alone on all Models]&lt;br /&gt;
&lt;br /&gt;
=== Surplus of ProB ===&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/surplus.pdf Surplus of ProB (added last)]&lt;br /&gt;
* [https://www3.hhu.de/stups/models/sefm2015_disprover/output/surplus2.pdf Surplus of ProB (added first)]&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=6000</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=6000"/>
		<updated>2025-07-30T13:35:46Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */ Version 1.3.0 released&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 26.6.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 26.6.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 26.6.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.3.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-1.3.0.exe Windows (x86_64) installer] - requires Windows 10 or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-aarch64-1.3.0.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/ProB%202%20UI-x86_64-1.3.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]]) - requires macOS 11 (Big Sur) or later&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/prob2-ui_1.3.0_amd64.deb Debian (x86_64) package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.3.0/prob2-ui-1.3.0-multi.jar multi-platform jar], which works with Java 21 or later on all supported platforms (except macOS on arm64 - we recommend using the native macOS application instead).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.3.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.3.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.3.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.3.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.3.1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.3.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so macOS will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.3.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5999</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5999"/>
		<updated>2025-07-30T12:09:06Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */ 1.2.2-SNAPSHOT -&amp;gt; 1.3.0-SNAPSHOT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.15.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 26.6.2025 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 26.6.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 26.6.2025  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.15.0/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk 8.6 ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]]. (Note: Tcl/Tk 9 is not binary compatible and cannot yet be used.)&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
It may be older than the latest final release.&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.9/ Rodin 3.9]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-1.2.1.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui_1.2.1-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui-1.2.1-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.3.0-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.3.0.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.3.0.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.3.0.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.3.0_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.3.0-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The latest versions of Homebrew now install Tcl/Tk 9.0 which does not work yet with ProB.&lt;br /&gt;
In this case install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk@8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/opt/homebrew/Cellar/tcl-tk@8/8.6.16/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5985</id>
		<title>JSON and Sockets</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5985"/>
		<updated>2025-06-18T10:17:56Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Link to complete cf-srv now that it is public, instead of including just the B machine inline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
ProB contains external functions to read and write JSON data and to communicate via sockets using JSON-RPC:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; providing the functions &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING&amp;lt;/tt&amp;gt; and the freetype &amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; to read and write JSON data.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt;: providing access to a JSON-RPC (Remote Procedure Call) protocol implementation over either TCP sockets using [[wikipedia:NDJSON|NDJSON]] or over [https://zeromq.org/ ZeroMQ] sockets.&lt;br /&gt;
&lt;br /&gt;
We have used this library to control Crazyflie drones via ProB:&lt;br /&gt;
[[File:prob_drone.jpeg||800px]]&lt;br /&gt;
&lt;br /&gt;
== JSON Library ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent [https://json.org/ JSON] data in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  JsonValue = JsonNull,&lt;br /&gt;
              JsonBoolean(BOOL),&lt;br /&gt;
              JsonNumber(FLOAT),&lt;br /&gt;
              JsonString(STRING),&lt;br /&gt;
              JsonArray(seq(JsonValue)),&lt;br /&gt;
              JsonObject(STRING +-&amp;gt; JsonValue)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Free Types]] are inductive data types.&lt;br /&gt;
They are not standard B, but stem from Z and Rodin&#039;s theory plug-in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; maps quite naturally to the specification of JSON itself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON text data:&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON(file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Reads a file path on the disk and parses the contained JSON data into the freetype representation.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING(contents)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Parses the given JSON text into the freetype representation.&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON(json, file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue * STRING&amp;lt;/tt&amp;gt; (predicate, always returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text and writes it to the given file path.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING(json)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue --&amp;gt; STRING&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;both&amp;lt;/b&amp;gt; &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt; to interact with JSON. One contains the freetype definition, the other one the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== JSON-RPC Library ==&lt;br /&gt;
&lt;br /&gt;
Implements the [https://www.jsonrpc.org/specification JSON-RPC 2.0] protocol.&lt;br /&gt;
&lt;br /&gt;
Despite their names, the &amp;lt;tt&amp;gt;LibraryZMQ_RPC&amp;lt;/tt&amp;gt; libraries also support using NDJSON instead of ZeroMQ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent JSON-RPC response object in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 RpcResult = RpcSuccess(JsonValue), RpcError(STRING)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON RPC as a client or server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning: &#039;&#039;&#039;all&#039;&#039;&#039; of the following functions/predicates/substitutions perform external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_INIT(endpoint)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a ZeroMQ client socket for JSON-RPC requests and binds it to the given ZeroMQ endpoint.&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_INIT(port)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a plain TCP client socket for JSON-RPC over NDJSON and binds it to the given port.&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_DESTROY(socket)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;SOCKET&amp;lt;/tt&amp;gt; (substitution, no return value)&lt;br /&gt;
** Closes the given ZeroMQ or plain TCP socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZeroMQ and plain TCP sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_SEND(socket, name, args)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(SOCKET*STRING*(STRING+-&amp;gt;JsonValue)) --&amp;gt; RpcResult&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Sends a JSON-RPC request object over the given ZeroMQ or plain TCP socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZeroMQ and plain TCP sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT(port)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Open a plain TCP server socket, wait for a client to connect, receive a JSON-RPC request object over NDJSON and return it.&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_REPLY(port,rpcresult)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(INTEGER * RpcResult) --&amp;gt; BOOL&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Respond to a previously received JSON-RPC request object with the given JSON-RPC response object. Will always return &amp;lt;tt&amp;gt;TRUE&amp;lt;/tt&amp;gt;.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: must be called right after &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT&amp;lt;/tt&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; will transitively include &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;all&amp;lt;/b&amp;gt; of &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; to interact with JSON-RPC, because the freetype definitions have to be separate from the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== Drone Control Example ==&lt;br /&gt;
For a real-world example application, see our [https://gitlab.cs.uni-duesseldorf.de/general/stups/cf-srv cf-srv] project for controlling Crazyflie drones using ProB.&lt;br /&gt;
The drones are radio-controlled using the manufacturer-provided Python library [https://pypi.org/project/cflib/ cflib],&lt;br /&gt;
based on which we implemented a ZeroMQ server ([https://gitlab.cs.uni-duesseldorf.de/general/stups/cf-srv/-/blob/master/cf_rpc.py?ref_type=heads cf_rpc.py]) that provides a simple drone control API over JSON-RPC.&lt;br /&gt;
The client is a B machine ([https://gitlab.cs.uni-duesseldorf.de/general/stups/cf-srv/-/blob/master/DroneCommunicator.mch?ref_type=heads DroneCommunicator.mch]), which can then be used to control the drones from a B machine inside ProB.&lt;br /&gt;
&lt;br /&gt;
== Client-Server Example Machines ==&lt;br /&gt;
&lt;br /&gt;
Here is a small example of a server that listens for NDJSON JSON-RPC messages on a plain (non-ZeroMQ) TCP socket.&lt;br /&gt;
You can run the server by calling &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_Server.mch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_Server&lt;br /&gt;
// start with probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
// other B Models can connect then to this server with socket := SOCKET_RPC_INIT(9999);&lt;br /&gt;
// and send JSON-RPC request to this server via&lt;br /&gt;
// result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))})&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryMeta.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES&lt;br /&gt;
  request, terminated&lt;br /&gt;
INVARIANT&lt;br /&gt;
  request : JsonValue &amp;amp;&lt;br /&gt;
  terminated : BOOL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  request := JsonNull || terminated := FALSE&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  GetRequest = SELECT request = JsonNull &amp;amp; terminated = FALSE THEN&lt;br /&gt;
    request := SOCKET_RPC_ACCEPT(Port);&lt;br /&gt;
    PRINTF(&amp;quot;~nReceived request: ~w~n&amp;quot;,[request])&lt;br /&gt;
  END;&lt;br /&gt;
  b &amp;lt;-- SendSuccessAnswer(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;ping&amp;quot;, &amp;quot;halt&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNull)) ||&lt;br /&gt;
      request := JsonNull ||&lt;br /&gt;
      terminated := bool(Method = &amp;quot;halt&amp;quot;)&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNumberAnswer(Method,Params,Name) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;params&amp;quot;|-&amp;gt;JsonObject(Params) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;name&amp;quot;|-&amp;gt;JsonString(Name) : Params &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;prob_statistics&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
        IF Name:{&amp;quot;now-timestamp&amp;quot;, &amp;quot;prolog-walltime&amp;quot;, &amp;quot;prolog-runtime&amp;quot;} THEN&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNumber(real(PROB_STATISTICS(Name)))))&lt;br /&gt;
        ELSE&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
        END&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNotImplemented(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                             &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After starting the above server, you can start this client on the same machine, e.g., via  &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_client.mch -p MAXINT&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_client&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
// A small demo client which alternatively sends PING and PROB_STATISTICS requests via JSON RPC to a server&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;;&lt;br /&gt;
 DRONE_URL == &amp;quot;none&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES socket, count&lt;br /&gt;
INVARIANT socket:INTEGER &amp;amp; count:NATURAL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
   socket := SOCKET_RPC_INIT(9999) ||&lt;br /&gt;
   count := MAXINT&lt;br /&gt;
OPERATIONS&lt;br /&gt;
   result &amp;lt;-- Ping = SELECT count &amp;gt; 1 &amp;amp; count mod 2 = 0THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PING request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;ping&amp;quot;, {}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- GetStats = SELECT count &amp;gt; 1  &amp;amp; count mod 2 = 1 THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PROB_STATISTICS request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- Terminate = SELECT count = 1 THEN&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;halt&amp;quot;, {});&lt;br /&gt;
      count := 0;&lt;br /&gt;
      PRINTF(&amp;quot;~nZMQ_RPC_DESTROY (~w)~n&amp;quot;,[socket]) ;&lt;br /&gt;
      ZMQ_RPC_DESTROY(socket)&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
% unused_constants(3,[JsonArray,JsonBoolean,RpcResult])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 1 ms (walltime: 1 ms)&lt;br /&gt;
Opened RPC-JSON socket (for ndjson, UTF8 streams) on port 9999&lt;br /&gt;
Client connected: 127.0.0.1&lt;br /&gt;
Received request line: {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;prob_statistics&amp;quot;,&amp;quot;params&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;prolog-walltime&amp;quot;},&amp;quot;id&amp;quot;:1}&lt;br /&gt;
 Prolog: [jsonrpc=string(2.0),method=string(prob_statistics),params=json([name=string(prolog-walltime)]),id=number(1)]&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(1.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;prob_statistics&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({(&amp;quot;name&amp;quot;|-&amp;gt;JsonString(&amp;quot;prolog-walltime&amp;quot;))}))})&lt;br /&gt;
Response for request 1 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:3667.0,&amp;quot;id&amp;quot;:1}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(5.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;halt&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({}))})&lt;br /&gt;
Response for request 5 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:null,&amp;quot;id&amp;quot;:5}&lt;br /&gt;
Deadlock reached after 12 steps (after SendSuccessAnswer).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( request=JsonNull &amp;amp;&lt;br /&gt;
       terminated=TRUE )&lt;br /&gt;
% Runtime for -execute: 5 ms (with gc: 5 ms, walltime: 3144 ms); since start: 3 sec 671 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the client (starting it after the above server):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Client.mch -p MAXINT 5&lt;br /&gt;
% unused_constants(10,[JsonArray,JsonBoolean,JsonNull,JsonNumber,JsonObject,JsonValue,Port,RpcError,RpcResult,RpcSuccess])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 0 ms (walltime: 0 ms)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (4 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3667.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (3 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (2 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3669.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (1 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
ZMQ_RPC_DESTROY (-1)&lt;br /&gt;
Deadlock reached after 7 steps (after Terminate).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( count=0 &amp;amp;&lt;br /&gt;
       socket=-1 )&lt;br /&gt;
% Runtime for -execute: 2 ms (with gc: 2 ms, walltime: 70 ms); since start: 0 sec 431 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5984</id>
		<title>JSON and Sockets</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5984"/>
		<updated>2025-06-18T10:03:39Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Use consistent terminology for plain TCP sockets and clarify that they use the NDJSON protocol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
ProB contains external functions to read and write JSON data and to communicate via sockets using JSON-RPC:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; providing the functions &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING&amp;lt;/tt&amp;gt; and the freetype &amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; to read and write JSON data.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt;: providing access to a JSON-RPC (Remote Procedure Call) protocol implementation over either TCP sockets using [[wikipedia:NDJSON|NDJSON]] or over [https://zeromq.org/ ZeroMQ] sockets.&lt;br /&gt;
&lt;br /&gt;
We have used this library to control Crazyflie drones via ProB:&lt;br /&gt;
[[File:prob_drone.jpeg||800px]]&lt;br /&gt;
&lt;br /&gt;
== JSON Library ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent [https://json.org/ JSON] data in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  JsonValue = JsonNull,&lt;br /&gt;
              JsonBoolean(BOOL),&lt;br /&gt;
              JsonNumber(FLOAT),&lt;br /&gt;
              JsonString(STRING),&lt;br /&gt;
              JsonArray(seq(JsonValue)),&lt;br /&gt;
              JsonObject(STRING +-&amp;gt; JsonValue)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Free Types]] are inductive data types.&lt;br /&gt;
They are not standard B, but stem from Z and Rodin&#039;s theory plug-in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; maps quite naturally to the specification of JSON itself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON text data:&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON(file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Reads a file path on the disk and parses the contained JSON data into the freetype representation.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING(contents)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Parses the given JSON text into the freetype representation.&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON(json, file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue * STRING&amp;lt;/tt&amp;gt; (predicate, always returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text and writes it to the given file path.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING(json)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue --&amp;gt; STRING&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;both&amp;lt;/b&amp;gt; &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt; to interact with JSON. One contains the freetype definition, the other one the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== JSON-RPC Library ==&lt;br /&gt;
&lt;br /&gt;
Implements the [https://www.jsonrpc.org/specification JSON-RPC 2.0] protocol.&lt;br /&gt;
&lt;br /&gt;
Despite their names, the &amp;lt;tt&amp;gt;LibraryZMQ_RPC&amp;lt;/tt&amp;gt; libraries also support using NDJSON instead of ZeroMQ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent JSON-RPC response object in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 RpcResult = RpcSuccess(JsonValue), RpcError(STRING)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON RPC as a client or server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning: &#039;&#039;&#039;all&#039;&#039;&#039; of the following functions/predicates/substitutions perform external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_INIT(endpoint)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a ZeroMQ client socket for JSON-RPC requests and binds it to the given ZeroMQ endpoint.&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_INIT(port)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a plain TCP client socket for JSON-RPC over NDJSON and binds it to the given port.&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_DESTROY(socket)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;SOCKET&amp;lt;/tt&amp;gt; (substitution, no return value)&lt;br /&gt;
** Closes the given ZeroMQ or plain TCP socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZeroMQ and plain TCP sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_SEND(socket, name, args)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(SOCKET*STRING*(STRING+-&amp;gt;JsonValue)) --&amp;gt; RpcResult&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Sends a JSON-RPC request object over the given ZeroMQ or plain TCP socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZeroMQ and plain TCP sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT(port)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Open a plain TCP server socket, wait for a client to connect, receive a JSON-RPC request object over NDJSON and return it.&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_REPLY(port,rpcresult)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(INTEGER * RpcResult) --&amp;gt; BOOL&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Respond to a previously received JSON-RPC request object with the given JSON-RPC response object. Will always return &amp;lt;tt&amp;gt;TRUE&amp;lt;/tt&amp;gt;.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: must be called right after &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT&amp;lt;/tt&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; will transitively include &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;all&amp;lt;/b&amp;gt; of &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; to interact with JSON-RPC, because the freetype definitions have to be separate from the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== Client-Server Example Machines ==&lt;br /&gt;
&lt;br /&gt;
Here is a small example of a server that listens for NDJSON JSON-RPC messages on a plain (non-ZeroMQ) TCP socket.&lt;br /&gt;
You can run the server by calling &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_Server.mch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_Server&lt;br /&gt;
// start with probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
// other B Models can connect then to this server with socket := SOCKET_RPC_INIT(9999);&lt;br /&gt;
// and send JSON-RPC request to this server via&lt;br /&gt;
// result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))})&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryMeta.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES&lt;br /&gt;
  request, terminated&lt;br /&gt;
INVARIANT&lt;br /&gt;
  request : JsonValue &amp;amp;&lt;br /&gt;
  terminated : BOOL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  request := JsonNull || terminated := FALSE&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  GetRequest = SELECT request = JsonNull &amp;amp; terminated = FALSE THEN&lt;br /&gt;
    request := SOCKET_RPC_ACCEPT(Port);&lt;br /&gt;
    PRINTF(&amp;quot;~nReceived request: ~w~n&amp;quot;,[request])&lt;br /&gt;
  END;&lt;br /&gt;
  b &amp;lt;-- SendSuccessAnswer(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;ping&amp;quot;, &amp;quot;halt&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNull)) ||&lt;br /&gt;
      request := JsonNull ||&lt;br /&gt;
      terminated := bool(Method = &amp;quot;halt&amp;quot;)&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNumberAnswer(Method,Params,Name) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;params&amp;quot;|-&amp;gt;JsonObject(Params) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;name&amp;quot;|-&amp;gt;JsonString(Name) : Params &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;prob_statistics&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
        IF Name:{&amp;quot;now-timestamp&amp;quot;, &amp;quot;prolog-walltime&amp;quot;, &amp;quot;prolog-runtime&amp;quot;} THEN&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNumber(real(PROB_STATISTICS(Name)))))&lt;br /&gt;
        ELSE&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
        END&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNotImplemented(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                             &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After starting the above server, you can start this client on the same machine, e.g., via  &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_client.mch -p MAXINT&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_client&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
// A small demo client which alternatively sends PING and PROB_STATISTICS requests via JSON RPC to a server&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;;&lt;br /&gt;
 DRONE_URL == &amp;quot;none&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES socket, count&lt;br /&gt;
INVARIANT socket:INTEGER &amp;amp; count:NATURAL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
   socket := SOCKET_RPC_INIT(9999) ||&lt;br /&gt;
   count := MAXINT&lt;br /&gt;
OPERATIONS&lt;br /&gt;
   result &amp;lt;-- Ping = SELECT count &amp;gt; 1 &amp;amp; count mod 2 = 0THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PING request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;ping&amp;quot;, {}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- GetStats = SELECT count &amp;gt; 1  &amp;amp; count mod 2 = 1 THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PROB_STATISTICS request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- Terminate = SELECT count = 1 THEN&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;halt&amp;quot;, {});&lt;br /&gt;
      count := 0;&lt;br /&gt;
      PRINTF(&amp;quot;~nZMQ_RPC_DESTROY (~w)~n&amp;quot;,[socket]) ;&lt;br /&gt;
      ZMQ_RPC_DESTROY(socket)&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
% unused_constants(3,[JsonArray,JsonBoolean,RpcResult])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 1 ms (walltime: 1 ms)&lt;br /&gt;
Opened RPC-JSON socket (for ndjson, UTF8 streams) on port 9999&lt;br /&gt;
Client connected: 127.0.0.1&lt;br /&gt;
Received request line: {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;prob_statistics&amp;quot;,&amp;quot;params&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;prolog-walltime&amp;quot;},&amp;quot;id&amp;quot;:1}&lt;br /&gt;
 Prolog: [jsonrpc=string(2.0),method=string(prob_statistics),params=json([name=string(prolog-walltime)]),id=number(1)]&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(1.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;prob_statistics&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({(&amp;quot;name&amp;quot;|-&amp;gt;JsonString(&amp;quot;prolog-walltime&amp;quot;))}))})&lt;br /&gt;
Response for request 1 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:3667.0,&amp;quot;id&amp;quot;:1}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(5.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;halt&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({}))})&lt;br /&gt;
Response for request 5 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:null,&amp;quot;id&amp;quot;:5}&lt;br /&gt;
Deadlock reached after 12 steps (after SendSuccessAnswer).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( request=JsonNull &amp;amp;&lt;br /&gt;
       terminated=TRUE )&lt;br /&gt;
% Runtime for -execute: 5 ms (with gc: 5 ms, walltime: 3144 ms); since start: 3 sec 671 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the client (starting it after the above server):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Client.mch -p MAXINT 5&lt;br /&gt;
% unused_constants(10,[JsonArray,JsonBoolean,JsonNull,JsonNumber,JsonObject,JsonValue,Port,RpcError,RpcResult,RpcSuccess])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 0 ms (walltime: 0 ms)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (4 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3667.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (3 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (2 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3669.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (1 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
ZMQ_RPC_DESTROY (-1)&lt;br /&gt;
Deadlock reached after 7 steps (after Terminate).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( count=0 &amp;amp;&lt;br /&gt;
       socket=-1 )&lt;br /&gt;
% Runtime for -execute: 2 ms (with gc: 2 ms, walltime: 70 ms); since start: 0 sec 431 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drone Example Machine ==&lt;br /&gt;
This is an excerpt from the B machine used to communicate with the Crazyflie drone.&lt;br /&gt;
Parallel to this a Python script is running, which implements all the JSON-RPC methods and uses [https://pypi.org/project/cflib/ &amp;lt;tt&amp;gt;cflib&amp;lt;/tt&amp;gt;] to communicate with the drone over radio.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE DroneCommunicator USES LibraryJSON, LibraryZMQ_RPC&lt;br /&gt;
DEFINITIONS&lt;br /&gt;
  &amp;quot;LibraryZMQ_RPC.def&amp;quot;;&lt;br /&gt;
  &amp;quot;LibraryReals.def&amp;quot;;&lt;br /&gt;
  SET_PREF_MAX_OPERATIONS == 0;&lt;br /&gt;
CONSTANTS DRONE_URL&lt;br /&gt;
PROPERTIES DRONE_URL:STRING &amp;amp; DRONE_URL = &amp;quot;radio://0/80/2M/5700B500F7&amp;quot;&lt;br /&gt;
VARIABLES init, socket, cycle&lt;br /&gt;
INVARIANT&lt;br /&gt;
  init:BOOL &amp;amp;&lt;br /&gt;
  socket:SOCKET &amp;amp;&lt;br /&gt;
  cycle:INTEGER&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  init := FALSE;&lt;br /&gt;
  socket := 0;&lt;br /&gt;
  cycle := 1&lt;br /&gt;
&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  Init = &lt;br /&gt;
  SELECT init = FALSE THEN&lt;br /&gt;
    socket := ZMQ_RPC_INIT(&amp;quot;tcp://localhost:22272&amp;quot;);&lt;br /&gt;
    init := TRUE&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Destroy =&lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    ZMQ_RPC_DESTROY(socket);&lt;br /&gt;
    init := FALSE&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  register_sensors = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;register_log&amp;quot;, {&lt;br /&gt;
        (&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)),&lt;br /&gt;
        (&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;Telemetry&amp;quot;)),&lt;br /&gt;
        (&amp;quot;variables&amp;quot; |-&amp;gt; JsonArray([&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.x&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.y&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.z&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.roll&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.pitch&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.yaw&amp;quot;)&lt;br /&gt;
        ]))}));&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Takeoff = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;takeoff&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Land = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;land&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Left(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;left&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Right(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;right&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Up(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;up&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Down(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;down&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Forward(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;forward&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Backward(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;backward&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  out &amp;lt;-- Drone_GetX = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    out := floor(1000.0 * JsonNumber~(RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;get_log_var&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;stateEstimate.x&amp;quot;))}))));&lt;br /&gt;
    cycle := cycle + 1&lt;br /&gt;
  END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5983</id>
		<title>JSON and Sockets</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5983"/>
		<updated>2025-06-18T09:46:46Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* JSON-RPC Library */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
ProB contains external functions to read and write JSON data and to communicate via sockets using JSON-RPC:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; providing the functions &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING&amp;lt;/tt&amp;gt; and the freetype &amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; to read and write JSON data.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt;: providing access to a JSON-RPC (Remote Procedure Call) protocol implementation either over regular sockets or ZMQ sockets. &lt;br /&gt;
&lt;br /&gt;
We have used this library to control Crazyflie drones via ProB:&lt;br /&gt;
[[File:prob_drone.jpeg||800px]]&lt;br /&gt;
&lt;br /&gt;
== JSON Library ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent [https://json.org/ JSON] data in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  JsonValue = JsonNull,&lt;br /&gt;
              JsonBoolean(BOOL),&lt;br /&gt;
              JsonNumber(FLOAT),&lt;br /&gt;
              JsonString(STRING),&lt;br /&gt;
              JsonArray(seq(JsonValue)),&lt;br /&gt;
              JsonObject(STRING +-&amp;gt; JsonValue)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Free Types]] are inductive data types.&lt;br /&gt;
They are not standard B, but stem from Z and Rodin&#039;s theory plug-in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; maps quite naturally to the specification of JSON itself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON text data:&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON(file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Reads a file path on the disk and parses the contained JSON data into the freetype representation.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING(contents)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Parses the given JSON text into the freetype representation.&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON(json, file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue * STRING&amp;lt;/tt&amp;gt; (predicate, always returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text and writes it to the given file path.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING(json)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue --&amp;gt; STRING&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;both&amp;lt;/b&amp;gt; &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt; to interact with JSON. One contains the freetype definition, the other one the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== JSON-RPC Library ==&lt;br /&gt;
&lt;br /&gt;
Implements the [https://www.jsonrpc.org/specification JSON-RPC 2.0] protocol.&lt;br /&gt;
&lt;br /&gt;
Despite their names the &amp;lt;tt&amp;gt;LibraryZMQ_RPC&amp;lt;/tt&amp;gt; libraries can use both [https://zeromq.org/ ZeroMQ] library and native sockets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent JSON-RPC response object in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 RpcResult = RpcSuccess(JsonValue), RpcError(STRING)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON RPC as a client or server.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning: &#039;&#039;&#039;all&#039;&#039;&#039; of the following functions/predicates/substitutions perform external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_INIT(endpoint)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a ZMQ socket for RPC with the ZMQ library and binds it to the given endpoint.&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_INIT(port)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a native socket for RPC and binds it to the given port.&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_DESTROY(socket)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;SOCKET&amp;lt;/tt&amp;gt; (substitution, no return value)&lt;br /&gt;
** Closes the given ZMQ or native socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZMQ and native sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_SEND(socket, name, args)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(SOCKET*STRING*(STRING+-&amp;gt;JsonValue)) --&amp;gt; RpcResult&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Sends a JSON-RPC request object over the given ZMQ or native socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZMQ and native sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT(port)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Open a native server socket, wait for a client to connect, receive a JSON-RPC request object and return it.&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_REPLY(port,rpcresult)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(INTEGER * RpcResult) --&amp;gt; BOOL&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Respond to a previously received JSON-RPC request object with the given JSON-RPC response object. Will always return &amp;lt;tt&amp;gt;TRUE&amp;lt;/tt&amp;gt;.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: must be called right after &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT&amp;lt;/tt&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; will transitively include &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;all&amp;lt;/b&amp;gt; of &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; to interact with JSON-RPC, because the freetype definitions have to be separate from the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== Client-Server Example Machines ==&lt;br /&gt;
&lt;br /&gt;
Here is a small example of a server that listens on a classical (non-ZMQ) socket.&lt;br /&gt;
You can run the server by calling &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_Server.mch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_Server&lt;br /&gt;
// start with probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
// other B Models can connect then to this server with socket := SOCKET_RPC_INIT(9999);&lt;br /&gt;
// and send JSON-RPC request to this server via&lt;br /&gt;
// result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))})&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryMeta.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES&lt;br /&gt;
  request, terminated&lt;br /&gt;
INVARIANT&lt;br /&gt;
  request : JsonValue &amp;amp;&lt;br /&gt;
  terminated : BOOL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  request := JsonNull || terminated := FALSE&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  GetRequest = SELECT request = JsonNull &amp;amp; terminated = FALSE THEN&lt;br /&gt;
    request := SOCKET_RPC_ACCEPT(Port);&lt;br /&gt;
    PRINTF(&amp;quot;~nReceived request: ~w~n&amp;quot;,[request])&lt;br /&gt;
  END;&lt;br /&gt;
  b &amp;lt;-- SendSuccessAnswer(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;ping&amp;quot;, &amp;quot;halt&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNull)) ||&lt;br /&gt;
      request := JsonNull ||&lt;br /&gt;
      terminated := bool(Method = &amp;quot;halt&amp;quot;)&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNumberAnswer(Method,Params,Name) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;params&amp;quot;|-&amp;gt;JsonObject(Params) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;name&amp;quot;|-&amp;gt;JsonString(Name) : Params &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;prob_statistics&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
        IF Name:{&amp;quot;now-timestamp&amp;quot;, &amp;quot;prolog-walltime&amp;quot;, &amp;quot;prolog-runtime&amp;quot;} THEN&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNumber(real(PROB_STATISTICS(Name)))))&lt;br /&gt;
        ELSE&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
        END&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNotImplemented(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                             &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After starting the above server, you can start this client on the same machine, e.g., via  &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_client.mch -p MAXINT&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_client&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
// A small demo client which alternatively sends PING and PROB_STATISTICS requests via JSON RPC to a server&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;;&lt;br /&gt;
 DRONE_URL == &amp;quot;none&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES socket, count&lt;br /&gt;
INVARIANT socket:INTEGER &amp;amp; count:NATURAL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
   socket := SOCKET_RPC_INIT(9999) ||&lt;br /&gt;
   count := MAXINT&lt;br /&gt;
OPERATIONS&lt;br /&gt;
   result &amp;lt;-- Ping = SELECT count &amp;gt; 1 &amp;amp; count mod 2 = 0THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PING request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;ping&amp;quot;, {}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- GetStats = SELECT count &amp;gt; 1  &amp;amp; count mod 2 = 1 THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PROB_STATISTICS request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- Terminate = SELECT count = 1 THEN&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;halt&amp;quot;, {});&lt;br /&gt;
      count := 0;&lt;br /&gt;
      PRINTF(&amp;quot;~nZMQ_RPC_DESTROY (~w)~n&amp;quot;,[socket]) ;&lt;br /&gt;
      ZMQ_RPC_DESTROY(socket)&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
% unused_constants(3,[JsonArray,JsonBoolean,RpcResult])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 1 ms (walltime: 1 ms)&lt;br /&gt;
Opened RPC-JSON socket (for ndjson, UTF8 streams) on port 9999&lt;br /&gt;
Client connected: 127.0.0.1&lt;br /&gt;
Received request line: {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;prob_statistics&amp;quot;,&amp;quot;params&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;prolog-walltime&amp;quot;},&amp;quot;id&amp;quot;:1}&lt;br /&gt;
 Prolog: [jsonrpc=string(2.0),method=string(prob_statistics),params=json([name=string(prolog-walltime)]),id=number(1)]&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(1.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;prob_statistics&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({(&amp;quot;name&amp;quot;|-&amp;gt;JsonString(&amp;quot;prolog-walltime&amp;quot;))}))})&lt;br /&gt;
Response for request 1 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:3667.0,&amp;quot;id&amp;quot;:1}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(5.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;halt&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({}))})&lt;br /&gt;
Response for request 5 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:null,&amp;quot;id&amp;quot;:5}&lt;br /&gt;
Deadlock reached after 12 steps (after SendSuccessAnswer).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( request=JsonNull &amp;amp;&lt;br /&gt;
       terminated=TRUE )&lt;br /&gt;
% Runtime for -execute: 5 ms (with gc: 5 ms, walltime: 3144 ms); since start: 3 sec 671 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the client (starting it after the above server):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Client.mch -p MAXINT 5&lt;br /&gt;
% unused_constants(10,[JsonArray,JsonBoolean,JsonNull,JsonNumber,JsonObject,JsonValue,Port,RpcError,RpcResult,RpcSuccess])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 0 ms (walltime: 0 ms)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (4 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3667.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (3 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (2 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3669.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (1 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
ZMQ_RPC_DESTROY (-1)&lt;br /&gt;
Deadlock reached after 7 steps (after Terminate).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( count=0 &amp;amp;&lt;br /&gt;
       socket=-1 )&lt;br /&gt;
% Runtime for -execute: 2 ms (with gc: 2 ms, walltime: 70 ms); since start: 0 sec 431 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drone Example Machine ==&lt;br /&gt;
This is an excerpt from the B machine used to communicate with the Crazyflie drone.&lt;br /&gt;
Parallel to this a Python script is running, which implements all the JSON-RPC methods and uses [https://pypi.org/project/cflib/ &amp;lt;tt&amp;gt;cflib&amp;lt;/tt&amp;gt;] to communicate with the drone over radio.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE DroneCommunicator USES LibraryJSON, LibraryZMQ_RPC&lt;br /&gt;
DEFINITIONS&lt;br /&gt;
  &amp;quot;LibraryZMQ_RPC.def&amp;quot;;&lt;br /&gt;
  &amp;quot;LibraryReals.def&amp;quot;;&lt;br /&gt;
  SET_PREF_MAX_OPERATIONS == 0;&lt;br /&gt;
CONSTANTS DRONE_URL&lt;br /&gt;
PROPERTIES DRONE_URL:STRING &amp;amp; DRONE_URL = &amp;quot;radio://0/80/2M/5700B500F7&amp;quot;&lt;br /&gt;
VARIABLES init, socket, cycle&lt;br /&gt;
INVARIANT&lt;br /&gt;
  init:BOOL &amp;amp;&lt;br /&gt;
  socket:SOCKET &amp;amp;&lt;br /&gt;
  cycle:INTEGER&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  init := FALSE;&lt;br /&gt;
  socket := 0;&lt;br /&gt;
  cycle := 1&lt;br /&gt;
&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  Init = &lt;br /&gt;
  SELECT init = FALSE THEN&lt;br /&gt;
    socket := ZMQ_RPC_INIT(&amp;quot;tcp://localhost:22272&amp;quot;);&lt;br /&gt;
    init := TRUE&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Destroy =&lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    ZMQ_RPC_DESTROY(socket);&lt;br /&gt;
    init := FALSE&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  register_sensors = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;register_log&amp;quot;, {&lt;br /&gt;
        (&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)),&lt;br /&gt;
        (&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;Telemetry&amp;quot;)),&lt;br /&gt;
        (&amp;quot;variables&amp;quot; |-&amp;gt; JsonArray([&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.x&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.y&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.z&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.roll&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.pitch&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.yaw&amp;quot;)&lt;br /&gt;
        ]))}));&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Takeoff = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;takeoff&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Land = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;land&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Left(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;left&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Right(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;right&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Up(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;up&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Down(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;down&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Forward(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;forward&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Backward(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;backward&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  out &amp;lt;-- Drone_GetX = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    out := floor(1000.0 * JsonNumber~(RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;get_log_var&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;stateEstimate.x&amp;quot;))}))));&lt;br /&gt;
    cycle := cycle + 1&lt;br /&gt;
  END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5982</id>
		<title>JSON and Sockets</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=JSON_and_Sockets&amp;diff=5982"/>
		<updated>2025-06-18T09:43:27Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
ProB contains external functions to read and write JSON data and to communicate via sockets using JSON-RPC:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; providing the functions &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING&amp;lt;/tt&amp;gt; and the freetype &amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; to read and write JSON data.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt;: providing access to a JSON-RPC (Remote Procedure Call) protocol implementation either over regular sockets or ZMQ sockets. &lt;br /&gt;
&lt;br /&gt;
We have used this library to control Crazyflie drones via ProB:&lt;br /&gt;
[[File:prob_drone.jpeg||800px]]&lt;br /&gt;
&lt;br /&gt;
== JSON Library ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent [https://json.org/ JSON] data in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  JsonValue = JsonNull,&lt;br /&gt;
              JsonBoolean(BOOL),&lt;br /&gt;
              JsonNumber(FLOAT),&lt;br /&gt;
              JsonString(STRING),&lt;br /&gt;
              JsonArray(seq(JsonValue)),&lt;br /&gt;
              JsonObject(STRING +-&amp;gt; JsonValue)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Free Types]] are inductive data types.&lt;br /&gt;
They are not standard B, but stem from Z and Rodin&#039;s theory plug-in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;JsonValue&amp;lt;/tt&amp;gt; maps quite naturally to the specification of JSON itself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryJSON.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON text data:&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON(file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Reads a file path on the disk and parses the contained JSON data into the freetype representation.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;READ_JSON_FROM_STRING(contents)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Parses the given JSON text into the freetype representation.&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON(json, file)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue * STRING&amp;lt;/tt&amp;gt; (predicate, always returns &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text and writes it to the given file path.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;WRITE_JSON_TO_STRING(json)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;JsonValue --&amp;gt; STRING&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Converts the given JSON data from the freetype representation into text.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;both&amp;lt;/b&amp;gt; &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt; to interact with JSON. One contains the freetype definition, the other one the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== JSON-RPC Library ==&lt;br /&gt;
&lt;br /&gt;
Implements the [https://www.jsonrpc.org/specification JSON-RPC 2.0] protocol.&lt;br /&gt;
&lt;br /&gt;
Despite their names the &amp;lt;tt&amp;gt;LibraryZMQ_RPC&amp;lt;/tt&amp;gt; libraries can use both [https://zeromq.org/ ZeroMQ] library and native sockets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; defines a FREETYPE to represent JSON-RPC response object in a type-safe way:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 RpcResult = RpcSuccess(JsonValue), RpcError(STRING)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; contains the definitions for the the external functions to interact with JSON RPC as a client or server:&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_INIT(endpoint)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;STRING --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a ZMQ socket for RPC with the ZMQ library and binds it to the given endpoint.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_INIT(port)&amp;lt;/tt&amp;gt; &lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; SOCKET&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Creates a native socket for RPC and binds it to the given port.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_DESTROY(socket)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;SOCKET&amp;lt;/tt&amp;gt; (substitution, no return value)&lt;br /&gt;
** Closes the given ZMQ or native socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZMQ and native sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this substitution does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;ZMQ_RPC_SEND(socket, name, args)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(SOCKET*STRING*(STRING+-&amp;gt;JsonValue)) --&amp;gt; RpcResult&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Sends a JSON-RPC request object over the given ZMQ or native socket.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: despite its name this function works with both ZMQ and native sockets&amp;lt;/i&amp;gt;&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT(port)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;INTEGER --&amp;gt; JsonValue&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Open a native server socket, wait for a client to connect, receive a JSON-RPC request object and return it.&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;SOCKET_RPC_REPLY(port,rpcresult)&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Type Signature: &amp;lt;tt&amp;gt;(INTEGER * RpcResult) --&amp;gt; BOOL&amp;lt;/tt&amp;gt;&lt;br /&gt;
** Respond to a previously received JSON-RPC request object with the given JSON-RPC response object. Will always return &amp;lt;tt&amp;gt;TRUE&amp;lt;/tt&amp;gt;.&lt;br /&gt;
** &amp;lt;i&amp;gt;Note: must be called right after &amp;lt;tt&amp;gt;SOCKET_RPC_ACCEPT&amp;lt;/tt&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
** &amp;lt;i&amp;gt;Warning: this function does external IO and should be guarded by a &amp;lt;tt&amp;gt;MAX_OPERATIONS == 0&amp;lt;/tt&amp;gt; definition&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; will transitively include &amp;lt;tt&amp;gt;LibraryJson.def&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
You need to include &amp;lt;b&amp;gt;all&amp;lt;/b&amp;gt; of &amp;lt;tt&amp;gt;LibraryJson.mch&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC.mch&amp;lt;/tt&amp;gt; to interact with JSON-RPC, because the freetype definitions have to be separate from the external function definitions.&lt;br /&gt;
&lt;br /&gt;
== Client-Server Example Machines ==&lt;br /&gt;
&lt;br /&gt;
Here is a small example of a server that listens on a classical (non-ZMQ) socket.&lt;br /&gt;
You can run the server by calling &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_Server.mch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_Server&lt;br /&gt;
// start with probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
// other B Models can connect then to this server with socket := SOCKET_RPC_INIT(9999);&lt;br /&gt;
// and send JSON-RPC request to this server via&lt;br /&gt;
// result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))})&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryMeta.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES&lt;br /&gt;
  request, terminated&lt;br /&gt;
INVARIANT&lt;br /&gt;
  request : JsonValue &amp;amp;&lt;br /&gt;
  terminated : BOOL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  request := JsonNull || terminated := FALSE&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  GetRequest = SELECT request = JsonNull &amp;amp; terminated = FALSE THEN&lt;br /&gt;
    request := SOCKET_RPC_ACCEPT(Port);&lt;br /&gt;
    PRINTF(&amp;quot;~nReceived request: ~w~n&amp;quot;,[request])&lt;br /&gt;
  END;&lt;br /&gt;
  b &amp;lt;-- SendSuccessAnswer(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;ping&amp;quot;, &amp;quot;halt&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNull)) ||&lt;br /&gt;
      request := JsonNull ||&lt;br /&gt;
      terminated := bool(Method = &amp;quot;halt&amp;quot;)&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNumberAnswer(Method,Params,Name) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                   &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;params&amp;quot;|-&amp;gt;JsonObject(Params) : JsonObject~(request) &amp;amp;&lt;br /&gt;
                                   &amp;quot;name&amp;quot;|-&amp;gt;JsonString(Name) : Params &amp;amp;&lt;br /&gt;
                                   Method : {&amp;quot;prob_statistics&amp;quot;}&lt;br /&gt;
                                   THEN&lt;br /&gt;
        IF Name:{&amp;quot;now-timestamp&amp;quot;, &amp;quot;prolog-walltime&amp;quot;, &amp;quot;prolog-runtime&amp;quot;} THEN&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcSuccess(JsonNumber(real(PROB_STATISTICS(Name)))))&lt;br /&gt;
        ELSE&lt;br /&gt;
          b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
        END&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END;&lt;br /&gt;
  b &amp;lt;-- SendNotImplemented(Method) = SELECT request /= JsonNull &amp;amp; Method:STRING &amp;amp;&lt;br /&gt;
                                             &amp;quot;method&amp;quot;|-&amp;gt;JsonString(Method) : JsonObject~(request) THEN&lt;br /&gt;
      b := SOCKET_RPC_REPLY(Port,RpcError(```Not Implemented: ${Method}```))&lt;br /&gt;
       ||&lt;br /&gt;
      request := JsonNull&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After starting the above server, you can start this client on the same machine, e.g., via  &amp;lt;tt&amp;gt;probcli Simple_RPC_JSON_client.mch -p MAXINT&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE Simple_RPC_JSON_client&lt;br /&gt;
INCLUDES LibraryZMQ_RPC, LibraryJSON&lt;br /&gt;
// A small demo client which alternatively sends PING and PROB_STATISTICS requests via JSON RPC to a server&lt;br /&gt;
DEFINITIONS &amp;quot;LibraryZMQ_RPC.def&amp;quot;; &amp;quot;LibraryIO.def&amp;quot;;&lt;br /&gt;
 DRONE_URL == &amp;quot;none&amp;quot;&lt;br /&gt;
CONSTANTS Port&lt;br /&gt;
PROPERTIES&lt;br /&gt;
  Port:NATURAL &amp;amp;&lt;br /&gt;
  Port = 9999&lt;br /&gt;
VARIABLES socket, count&lt;br /&gt;
INVARIANT socket:INTEGER &amp;amp; count:NATURAL&lt;br /&gt;
INITIALISATION&lt;br /&gt;
   socket := SOCKET_RPC_INIT(9999) ||&lt;br /&gt;
   count := MAXINT&lt;br /&gt;
OPERATIONS&lt;br /&gt;
   result &amp;lt;-- Ping = SELECT count &amp;gt; 1 &amp;amp; count mod 2 = 0THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PING request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;ping&amp;quot;, {}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- GetStats = SELECT count &amp;gt; 1  &amp;amp; count mod 2 = 1 THEN&lt;br /&gt;
      PRINTF(&amp;quot;~nSending PROB_STATISTICS request on socket ~w (~w left)~n&amp;quot;,[socket,count-1]) ;&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;prob_statistics&amp;quot;, {(&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;prolog-walltime&amp;quot;))}) ;&lt;br /&gt;
      PRINTF(&amp;quot;Result = ~w~n&amp;quot;,[result]) ;&lt;br /&gt;
      count := count -1&lt;br /&gt;
   END;&lt;br /&gt;
   result &amp;lt;-- Terminate = SELECT count = 1 THEN&lt;br /&gt;
      result := ZMQ_RPC_SEND(socket, &amp;quot;halt&amp;quot;, {});&lt;br /&gt;
      count := 0;&lt;br /&gt;
      PRINTF(&amp;quot;~nZMQ_RPC_DESTROY (~w)~n&amp;quot;,[socket]) ;&lt;br /&gt;
      ZMQ_RPC_DESTROY(socket)&lt;br /&gt;
    END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Server.mch&lt;br /&gt;
% unused_constants(3,[JsonArray,JsonBoolean,RpcResult])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 1 ms (walltime: 1 ms)&lt;br /&gt;
Opened RPC-JSON socket (for ndjson, UTF8 streams) on port 9999&lt;br /&gt;
Client connected: 127.0.0.1&lt;br /&gt;
Received request line: {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;method&amp;quot;:&amp;quot;prob_statistics&amp;quot;,&amp;quot;params&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;prolog-walltime&amp;quot;},&amp;quot;id&amp;quot;:1}&lt;br /&gt;
 Prolog: [jsonrpc=string(2.0),method=string(prob_statistics),params=json([name=string(prolog-walltime)]),id=number(1)]&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(1.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;prob_statistics&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({(&amp;quot;name&amp;quot;|-&amp;gt;JsonString(&amp;quot;prolog-walltime&amp;quot;))}))})&lt;br /&gt;
Response for request 1 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:3667.0,&amp;quot;id&amp;quot;:1}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Received request: JsonObject({(&amp;quot;id&amp;quot;|-&amp;gt;JsonNumber(5.0)),(&amp;quot;jsonrpc&amp;quot;|-&amp;gt;JsonString(&amp;quot;2.0&amp;quot;)),(&amp;quot;method&amp;quot;|-&amp;gt;JsonString(&amp;quot;halt&amp;quot;)),(&amp;quot;params&amp;quot;|-&amp;gt;JsonObject({}))})&lt;br /&gt;
Response for request 5 &amp;gt;&amp;gt;&amp;gt; {&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;result&amp;quot;:null,&amp;quot;id&amp;quot;:5}&lt;br /&gt;
Deadlock reached after 12 steps (after SendSuccessAnswer).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( request=JsonNull &amp;amp;&lt;br /&gt;
       terminated=TRUE )&lt;br /&gt;
% Runtime for -execute: 5 ms (with gc: 5 ms, walltime: 3144 ms); since start: 3 sec 671 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a sample log when running the client (starting it after the above server):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ probcli Simple_RPC_JSON_Client.mch -p MAXINT 5&lt;br /&gt;
% unused_constants(10,[JsonArray,JsonBoolean,JsonNull,JsonNumber,JsonObject,JsonValue,Port,RpcError,RpcResult,RpcSuccess])&lt;br /&gt;
% Runtime for SOLUTION for SETUP_CONSTANTS: 0 ms (walltime: 0 ms)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (4 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3667.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (3 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
Sending PROB_STATISTICS request on socket -1 (2 left)&lt;br /&gt;
Result = RpcSuccess(JsonNumber(3669.0))&lt;br /&gt;
&lt;br /&gt;
Sending PING request on socket -1 (1 left)&lt;br /&gt;
Result = RpcSuccess(JsonNull)&lt;br /&gt;
&lt;br /&gt;
ZMQ_RPC_DESTROY (-1)&lt;br /&gt;
Deadlock reached after 7 steps (after Terminate).&lt;br /&gt;
VARIABLES (use -v to see constants or -silent to suppress output):&lt;br /&gt;
     ( count=0 &amp;amp;&lt;br /&gt;
       socket=-1 )&lt;br /&gt;
% Runtime for -execute: 2 ms (with gc: 2 ms, walltime: 70 ms); since start: 0 sec 431 ms&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drone Example Machine ==&lt;br /&gt;
This is an excerpt from the B machine used to communicate with the Crazyflie drone.&lt;br /&gt;
Parallel to this a Python script is running, which implements all the JSON-RPC methods and uses [https://pypi.org/project/cflib/ &amp;lt;tt&amp;gt;cflib&amp;lt;/tt&amp;gt;] to communicate with the drone over radio.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE DroneCommunicator USES LibraryJSON, LibraryZMQ_RPC&lt;br /&gt;
DEFINITIONS&lt;br /&gt;
  &amp;quot;LibraryZMQ_RPC.def&amp;quot;;&lt;br /&gt;
  &amp;quot;LibraryReals.def&amp;quot;;&lt;br /&gt;
  SET_PREF_MAX_OPERATIONS == 0;&lt;br /&gt;
CONSTANTS DRONE_URL&lt;br /&gt;
PROPERTIES DRONE_URL:STRING &amp;amp; DRONE_URL = &amp;quot;radio://0/80/2M/5700B500F7&amp;quot;&lt;br /&gt;
VARIABLES init, socket, cycle&lt;br /&gt;
INVARIANT&lt;br /&gt;
  init:BOOL &amp;amp;&lt;br /&gt;
  socket:SOCKET &amp;amp;&lt;br /&gt;
  cycle:INTEGER&lt;br /&gt;
INITIALISATION&lt;br /&gt;
  init := FALSE;&lt;br /&gt;
  socket := 0;&lt;br /&gt;
  cycle := 1&lt;br /&gt;
&lt;br /&gt;
OPERATIONS&lt;br /&gt;
  Init = &lt;br /&gt;
  SELECT init = FALSE THEN&lt;br /&gt;
    socket := ZMQ_RPC_INIT(&amp;quot;tcp://localhost:22272&amp;quot;);&lt;br /&gt;
    init := TRUE&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Destroy =&lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    ZMQ_RPC_DESTROY(socket);&lt;br /&gt;
    init := FALSE&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  register_sensors = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;register_log&amp;quot;, {&lt;br /&gt;
        (&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)),&lt;br /&gt;
        (&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;Telemetry&amp;quot;)),&lt;br /&gt;
        (&amp;quot;variables&amp;quot; |-&amp;gt; JsonArray([&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.x&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.y&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.z&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.roll&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.pitch&amp;quot;),&lt;br /&gt;
          JsonString(&amp;quot;stateEstimate.yaw&amp;quot;)&lt;br /&gt;
        ]))}));&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Takeoff = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;takeoff&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Land = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;land&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Left(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;left&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Right(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;right&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Up(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;up&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Down(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;down&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Forward(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;forward&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  Drone_Backward(dist) = &lt;br /&gt;
  SELECT&lt;br /&gt;
    init = TRUE &amp;amp;&lt;br /&gt;
    dist : 0..2000&lt;br /&gt;
  THEN&lt;br /&gt;
    VAR res IN&lt;br /&gt;
      res := RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;backward&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;distance&amp;quot; |-&amp;gt; JsonNumber(RDIV(real(dist), real(1000))))}))&lt;br /&gt;
    END&lt;br /&gt;
  END;&lt;br /&gt;
&lt;br /&gt;
  out &amp;lt;-- Drone_GetX = &lt;br /&gt;
  SELECT init = TRUE THEN&lt;br /&gt;
    out := floor(1000.0 * JsonNumber~(RpcSuccess~(ZMQ_RPC_SEND(socket, &amp;quot;get_log_var&amp;quot;, {(&amp;quot;url&amp;quot; |-&amp;gt; JsonString(DRONE_URL)), (&amp;quot;name&amp;quot; |-&amp;gt; JsonString(&amp;quot;stateEstimate.x&amp;quot;))}))));&lt;br /&gt;
    cycle := cycle + 1&lt;br /&gt;
  END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Bugs&amp;diff=5978</id>
		<title>Bugs</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Bugs&amp;diff=5978"/>
		<updated>2025-06-17T13:19:16Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Console Output */ mention console Start Menu entry on Windows&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: we have migrated our issues to the [https://github.com/hhu-stups/prob-issues/issues prob-issues] GitHub project.&lt;br /&gt;
Use this [https://github.com/hhu-stups/prob-issues/issues/new link to add a new issue].&lt;br /&gt;
&lt;br /&gt;
=== Version Information ===&lt;br /&gt;
Typically it is helpful for us to know as much information as possible about your environment:&lt;br /&gt;
* the operating system you are using (Windows, macOS, Linux) and which version thereof&lt;br /&gt;
* which version of ProB you are using, which can be obtained as follows&lt;br /&gt;
** for probcli you can use the command: &amp;lt;tt&amp;gt;probcli -version -v&amp;lt;/tt&amp;gt;&lt;br /&gt;
** in ProB Tcl/Tk you can use the &amp;quot;About ProB&amp;quot; menu command&lt;br /&gt;
** in ProB2-UI you can use the &amp;quot;About ProB2&amp;quot; menu command, which gives you the version of ProB2 UI, the version of the Java ProB API, the version of probcli, the version of the parser and the Java version. The dialog has a &amp;quot;Copy&amp;quot; button for your convenience.&lt;br /&gt;
&lt;br /&gt;
=== Console Output ===&lt;br /&gt;
For ProB2-UI the following information can also be helpful to us:&lt;br /&gt;
* either the output on the console, if you have started ProB2-UI inside a terminal or a console&lt;br /&gt;
** on Windows, there is a separate Start Menu entry for starting ProB2-UI with a visible console window&lt;br /&gt;
* the contents of the ProB2-UI logfile named &amp;quot;ProB2UI.log&amp;quot; which can be found inside your home directory inside the &amp;quot;.prob&amp;quot; folder&lt;br /&gt;
* alternatively, the contents of the ProB2-UI Prolog console, which is available in the Advanced menu using the &amp;quot;ProB Core Console&amp;quot; command. This contains less information than the full log, but can still be very helpful to diagnose issues.&lt;br /&gt;
&lt;br /&gt;
=== Old Bug Tracker ===&lt;br /&gt;
&lt;br /&gt;
If you want, you can also use our old bug tracker to submit a report&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;myCustomTrigger&amp;quot;&amp;gt;Jira bug tracker&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;script&lt;br /&gt;
  src=&amp;quot;https://code.jquery.com/jquery-2.2.4.min.js&amp;quot;&lt;br /&gt;
  integrity=&amp;quot;sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=&amp;quot;&lt;br /&gt;
  crossorigin=&amp;quot;anonymous&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://probjira.atlassian.net/s/d41d8cd98f00b204e9800998ecf8427e-T/-w0bwo4/b/14/a44af77267a987a660377e5c46e0fb64/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?locale=en-US&amp;amp;collectorId=9e060bbf&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;window.ATL_JQ_PAGE_PROPS =  {&lt;br /&gt;
	&amp;quot;triggerFunction&amp;quot;: function(showCollectorDialog) {&lt;br /&gt;
		//Requires that jQuery is available! &lt;br /&gt;
		jQuery(&amp;quot;#myCustomTrigger&amp;quot;).click(function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
			showCollectorDialog();&lt;br /&gt;
		});&lt;br /&gt;
	}};&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
(in case this link does not work in your browser you can go directly to https://probjira.atlassian.net/secure/Dashboard.jspa)&lt;br /&gt;
You may also want to ask questions within our [https://groups.google.com/d/forum/prob-users prob-users group].&lt;br /&gt;
&lt;br /&gt;
We use a free [http://www.atlassian.com/software/views/open-source-license-request/ Open Source license] from Atlassian!&lt;br /&gt;
&lt;br /&gt;
[[Image:jira.png|200px|]]&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Bugs&amp;diff=5977</id>
		<title>Bugs</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Bugs&amp;diff=5977"/>
		<updated>2025-06-17T13:17:32Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: we have migrated our issues to the [https://github.com/hhu-stups/prob-issues/issues prob-issues] GitHub project.&lt;br /&gt;
Use this [https://github.com/hhu-stups/prob-issues/issues/new link to add a new issue].&lt;br /&gt;
&lt;br /&gt;
=== Version Information ===&lt;br /&gt;
Typically it is helpful for us to know as much information as possible about your environment:&lt;br /&gt;
* the operating system you are using (Windows, macOS, Linux) and which version thereof&lt;br /&gt;
* which version of ProB you are using, which can be obtained as follows&lt;br /&gt;
** for probcli you can use the command: &amp;lt;tt&amp;gt;probcli -version -v&amp;lt;/tt&amp;gt;&lt;br /&gt;
** in ProB Tcl/Tk you can use the &amp;quot;About ProB&amp;quot; menu command&lt;br /&gt;
** in ProB2-UI you can use the &amp;quot;About ProB2&amp;quot; menu command, which gives you the version of ProB2 UI, the version of the Java ProB API, the version of probcli, the version of the parser and the Java version. The dialog has a &amp;quot;Copy&amp;quot; button for your convenience.&lt;br /&gt;
&lt;br /&gt;
=== Console Output ===&lt;br /&gt;
For ProB2-UI the following information can also be helpful to us:&lt;br /&gt;
* either the output on the console, if you have started ProB2-UI inside a terminal or a console&lt;br /&gt;
* the contents of the ProB2-UI logfile named &amp;quot;ProB2UI.log&amp;quot; which can be found inside your home directory inside the &amp;quot;.prob&amp;quot; folder&lt;br /&gt;
* alternatively, the contents of the ProB2-UI Prolog console, which is available in the Advanced menu using the &amp;quot;ProB Core Console&amp;quot; command. This contains less information than the full log, but can still be very helpful to diagnose issues.&lt;br /&gt;
&lt;br /&gt;
=== Old Bug Tracker ===&lt;br /&gt;
&lt;br /&gt;
If you want, you can also use our old bug tracker to submit a report&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;myCustomTrigger&amp;quot;&amp;gt;Jira bug tracker&amp;lt;/a&amp;gt; &lt;br /&gt;
&amp;lt;script&lt;br /&gt;
  src=&amp;quot;https://code.jquery.com/jquery-2.2.4.min.js&amp;quot;&lt;br /&gt;
  integrity=&amp;quot;sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=&amp;quot;&lt;br /&gt;
  crossorigin=&amp;quot;anonymous&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://probjira.atlassian.net/s/d41d8cd98f00b204e9800998ecf8427e-T/-w0bwo4/b/14/a44af77267a987a660377e5c46e0fb64/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?locale=en-US&amp;amp;collectorId=9e060bbf&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;window.ATL_JQ_PAGE_PROPS =  {&lt;br /&gt;
	&amp;quot;triggerFunction&amp;quot;: function(showCollectorDialog) {&lt;br /&gt;
		//Requires that jQuery is available! &lt;br /&gt;
		jQuery(&amp;quot;#myCustomTrigger&amp;quot;).click(function(e) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
			showCollectorDialog();&lt;br /&gt;
		});&lt;br /&gt;
	}};&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
(in case this link does not work in your browser you can go directly to https://probjira.atlassian.net/secure/Dashboard.jspa)&lt;br /&gt;
You may also want to ask questions within our [https://groups.google.com/d/forum/prob-users prob-users group].&lt;br /&gt;
&lt;br /&gt;
We use a free [http://www.atlassian.com/software/views/open-source-license-request/ Open Source license] from Atlassian!&lt;br /&gt;
&lt;br /&gt;
[[Image:jira.png|200px|]]&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5898</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5898"/>
		<updated>2025-02-20T10:34:52Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI (based on JavaFX) */ Update ProB 2 UI Debian snapshot download link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.13.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 20.2.2024 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 20.2.2024 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 20.2.2024 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.13.1-beta1 1.13.1-beta1].&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI (based on JavaFX)===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-1.2.1.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui_1.2.1-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui-1.2.1-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.2-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.2.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.2.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.2.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.2_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.2-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B Parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.13) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.13_5/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB generates various graphs (state space, custom graph, machine hierarchy,...) as .dot files and then  uses the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; to layout the graph and convert it to PDF.&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk can also use dot-file viewer such as the &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; program from GraphViz in Linux.&lt;br /&gt;
On macOS and Windows  it is more difficult to obtain a good viewer application for dot files. VS Code with the [https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview Graphviz Interactive Preview] extension is a candidate.&lt;br /&gt;
The commercial OmniGraffle macOS application can import .dot files.  A free alternative on macOS may be [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
If you do not manage to install a viewer, you should select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk.&lt;br /&gt;
Indeed, many ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install on macOS with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings. Unicode improvements. READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2024-02-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2-fix1]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=5897</id>
		<title>The ProB Animator and Model Checker</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=5897"/>
		<updated>2025-02-20T10:33:01Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;60%&amp;quot; style=&amp;quot;padding-right:20px;&amp;quot; |&lt;br /&gt;
ProB is an animator, constraint solver and model checker for the [http://www.clearsy.com/en/our-specific-know-how/b-method/?lang=en B-Method]. The constraint-solving capabilities of ProB can be used for animation, model finding, [[Constraint_Based_Checking|constraint-based symbolic checking]] and [[Test_Case_Generation|test-case generation]].&lt;br /&gt;
&lt;br /&gt;
The B language is rooted in predicate logic, arithmetic and set theory and provides support for data structures such as (higher-order) relations, functions and sequences.&lt;br /&gt;
In addition to the B language, ProB also supports [http://www.event-b.org/ Event-B], [http://en.wikipedia.org/wiki/Communicating_sequential_processes CSP-M],&lt;br /&gt;
[http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html TLA+], and [http://en.wikipedia.org/wiki/Z_notation Z]. ProB can be installed within [http://sourceforge.net/projects/rodin-b-sharp/ Rodin].&lt;br /&gt;
ProB can also be used as a [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel] to generate interactive notebooks.&lt;br /&gt;
&lt;br /&gt;
ProB is being used within Alstom, ClearSy, Siemens, Thales and several other companies for [http://www.data-validation.fr data validation] of complicated properties for safety critical systems. It was used, e.g., for Paris Line 1, Sao Paulo line 4, Barcelona line 9 and many more.&lt;br /&gt;
ProB is certified T2 SIL4 according to the Cenelec EN 50128 standard for use at Thales.&lt;br /&gt;
In this [https://www.youtube.com/watch?v=K6mS6akRmvA video from the Deutsche Bahn] you can see ProB animating a formal B model of the ETCS hybrid-level 3 principles in real-time, controlling two trains.&lt;br /&gt;
Michael Leuschel and his group have won the  first edition of the &amp;lt;b&amp;gt;[https://prologyear.logicprogramming.org/ColmerauerPrize.html Alain Colmerauer Prize]&amp;lt;/b&amp;gt; for ProB.&lt;br /&gt;
For commercial support contact [http://www.stups.uni-duesseldorf.de/~leuschel/ Michael Leuschel].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Versions of ProB ===&lt;br /&gt;
&lt;br /&gt;
Several versions of ProB are available. They all make use of the same Prolog core (see below).&lt;br /&gt;
&lt;br /&gt;
* A command-line tool called [[Using_the_Command-Line_Version_of_ProB|probcli]]. It is distributed with the standard [[Download#Latest_Release|download of the latest release]].&lt;br /&gt;
* The original graphical user interface ProB Tcl/Tk.  It is distributed with the standard [[Download#Latest_Release|download of the latest release]].&lt;br /&gt;
* The [[ProB2-UI|new graphical user interface ProB2-UI]] based on Java FX and the ProB2-Java-API of ProB. It is available as a  [[Download#ProB2_UI_using_Java_FX| separate download]]. It contains [[VisB]] for SVG-based visualizations (as a successor to BMotionStudio).&lt;br /&gt;
* [[ProB_for_Event-B|ProB for use within Rodin]], the toolset for Event-B. It is [[Download#ProB_for_Rodin|available as a plugin]].&lt;br /&gt;
* An API for using ProB from Java, called [[ProB_Java_API|ProB2-Java-API]] (aka ProB2). It is available via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
* A [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel kernel for Jupyter], allowing to use B and ProB from within Jupyter notebooks. It is available via [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel a seperate installation procedure].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
The core of ProB is implemented in [http://www.sics.se/isl/sicstuswww/site/index.html SICStus Prolog] (but can be run without a SICStus Prolog license). The ProB constraint solver is implemented using co-routining and the CLP(FD) finite domain library of SICStus. An alternate [[Using_ProB_with_KODKOD | constraint solver based on Kodkod (and thus SAT)]] is also available within ProB, as is [[Using_ProB_with_Z3|an integration with the SMT solver Z3]]. An alternate [[TLC|model checking engine (using TLC)]] well-suited for lower level B specifications is available as is an integration with [https://github.com/utwente-fmt/ltsmin/releases LTSmin] as [[LTSmin|model checking backend]].&lt;br /&gt;
The [[ProBLicence | ProB Licence can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; style=&amp;quot;background:#EDF2F2;padding:15px;&amp;quot; | &#039;&#039;&#039;News&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;2024-02-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.13.0]] is available. Better Rodin theory support. Template strings.  READ_JSON and other new external functions. VisB support for groups and &amp;quot;use&amp;quot; element. [[Monte_Carlo_Tree_Search_Game_Play|MCTS game play]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-11-10&#039;&#039;&#039;&lt;br /&gt;
Michael Leuschel and his group win [https://prologyear.logicprogramming.org/ColmerauerPrize.html  first edition of Colmerauer Prize] for ProB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Identifiers between backquotes, flexible JSON trace replay, DPLLT solving, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.0]] is available. Improved support for infinite sets, operation caching, faster LTL checking for safety formulas, more compact .prob files, [[VisB|VisB]] HTML export, constructive Z3 translation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-01-26&#039;&#039;&#039;&lt;br /&gt;
[[Download#ProB2-UI_using_Java_FX|ProB2-UI 1.1.0]] is available, contains [[VisB|VisB]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]]. Highlights: [[Well-Definedness_Checking|well-definedness prover]], [[Summary_of_B_Syntax#Reals:|REAL datatype]], -lint comand for [[Editors_for_ProB#VSCode|VSCode]] and [[Editors_for_ProB#Atom|Atom]], improved unsat core.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]]. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]]. Highlights: Unicode support, regular expression library, memoization. [[Download#ProB2_UI_using_Java_FX|New ProB2 UI]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]]. Highlights: [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV support.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] Highlights:  [[Tips:_B_Idioms |LET and IF-THEN-ELSE for expressions and predicates]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 as backend]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[DownloadPriorVersions |ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, [[TLC|integration of the TLC model checker]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039; [[ProB_Logic_Calculator|ProB Logic Calculator]] available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
[[Download#Short Release History|More in Release History]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
ProB covers a [[Summary of B Syntax|large part of B]], and we are striving towards full coverage of Atelier B constructs. ProB supports B features such as non-deterministic operations, arbitrary quantification, sets, sequences, functions, lambda abstractions, set comprehensions, records, and many more. ProB does support multiple machines, refinements, and implementations. ProB can also be used for automated [[Refinement Checking|refinement checking]] and [[LTL Model Checking|LTL model checking]]. It also [[CSP-M|supports CSP-M]] process descriptions, to be used on their own or to guide B machines for specification and property validation. The state space of the specifications can be [[Graphical Viewer|graphically visualized]]. &lt;br /&gt;
ProB supports Z specifications (ProB in this context is sometimes called [[ProZ]]) as well as [[TLA|TLA+ specifications]]. &lt;br /&gt;
ProB can be used within Rodin and [http://www.atelierb.eu/en/ Atelier-B as a disprover and prover].&lt;br /&gt;
ProB supports also importing, validating and visualising [https://www.railml.org/en/applications/detail/prob.html railML data].&lt;br /&gt;
&lt;br /&gt;
[[File:ProBAtAGlance.png| center |500px]]&lt;br /&gt;
&lt;br /&gt;
=== Citing ProB ===&lt;br /&gt;
&lt;br /&gt;
The initial conference publication was:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael Butler (2003): ProB: A Model Checker for B. In Keijiro Araki, Stefania Gnesi &amp;amp; Dino Mandrioli, editors: FME 2003: Formal Methods, LNCS 2805, Springer-Verlag, pp. 855–874, doi:10.1007/978-3-540-45236-2 46.&lt;br /&gt;
&lt;br /&gt;
A later journal article describes ProB in more detail:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael J. Butler (2008): ProB: an automated analysis toolset for the B method. STTT 10(2), pp. 185–203. Available at [http://dx.doi.org/10.1007/s10009-007-0063-9 http://dx.doi.org/10.1007/s10009-007-0063-9].&lt;br /&gt;
&lt;br /&gt;
For convenience we also provide  [[Citing ProB|Bibtex entries for the above references]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5509</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5509"/>
		<updated>2023-08-15T14:18:41Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-1.2.1.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui_1.2.1-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui-1.2.1-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.2-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.2.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.2.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.2.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.2-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.2-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.1-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5508</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5508"/>
		<updated>2023-08-15T14:18:31Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI */ Update and deduplicate info about ProB Java API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-1.2.1.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui_1.2.1-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui-1.2.1-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.2-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.2.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.2.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.2.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.2-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.2-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying [[ProB Java API]] of ProB2-UI (aka the ProB 2 kernel) is available to Java developers via [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5507</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5507"/>
		<updated>2023-08-15T14:15:28Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI */ Update download links for release 1.2.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.1 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-1.2.1.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui_1.2.1-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.1/prob2-ui-1.2.1-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.2-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.2.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.2.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.2.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.2-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.2-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=5506</id>
		<title>The ProB Animator and Model Checker</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=The_ProB_Animator_and_Model_Checker&amp;diff=5506"/>
		<updated>2023-08-14T16:55:04Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|width=&amp;quot;60%&amp;quot; style=&amp;quot;padding-right:20px;&amp;quot; |&lt;br /&gt;
ProB is an animator, constraint solver and model checker for the [http://www.clearsy.com/en/our-specific-know-how/b-method/?lang=en B-Method]. The constraint-solving capabilities of ProB can be used for animation, model finding, [[Constraint_Based_Checking|constraint-based symbolic checking]] and [[Test_Case_Generation|test-case generation]].&lt;br /&gt;
&lt;br /&gt;
The B language is rooted in predicate logic, arithmetic and set theory and provides support for data structures such as (higher-order) relations, functions and sequences.&lt;br /&gt;
In addition to the B language, ProB also supports [http://www.event-b.org/ Event-B], [http://en.wikipedia.org/wiki/Communicating_sequential_processes CSP-M],&lt;br /&gt;
[http://research.microsoft.com/en-us/um/people/lamport/tla/tla.html TLA+], and [http://en.wikipedia.org/wiki/Z_notation Z]. ProB can be installed within [http://sourceforge.net/projects/rodin-b-sharp/ Rodin].&lt;br /&gt;
ProB can also be used as a [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel] to generate interactive notebooks.&lt;br /&gt;
&lt;br /&gt;
ProB is being used within Alstom, ClearSy, Siemens, Thales and several other companies for [http://www.data-validation.fr data validation] of complicated properties for safety critical systems. It was used, e.g., for Paris Line1, Sao Paulo line 4, Barcelona line 9 and many more.&lt;br /&gt;
ProB is certified T2 SIL4 according to the Cenelec EN 50128 standard for use at Thales.&lt;br /&gt;
In this [https://www.youtube.com/watch?v=K6mS6akRmvA video from the Deutsche Bahn] you can see ProB animating a formal B model of the ETCS hybrid-level 3 principles in real-time, controlling two trains.&lt;br /&gt;
Michael Leuschel and his group have won the  first edition of the &amp;lt;b&amp;gt;[https://prologyear.logicprogramming.org/ColmerauerPrize.html  AlainColmerauer Prize]&amp;lt;/b&amp;gt; for ProB.&lt;br /&gt;
For commercial support contact [http://www.stups.uni-duesseldorf.de/~leuschel/ Michael Leuschel].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Versions of ProB ===&lt;br /&gt;
&lt;br /&gt;
Several versions of ProB are available. They all make use of the same Prolog core (see below).&lt;br /&gt;
&lt;br /&gt;
* A command-line tool called [[Using_the_Command-Line_Version_of_ProB|probcli]]. It is distributed with the standard [[Download#Latest_Release|download of the latest release]].&lt;br /&gt;
* The original graphical user interface ProB Tcl/Tk.  It is distributed with the standard [[Download#Latest_Release|download of the latest release]].&lt;br /&gt;
* The [[ProB2-UI|new graphical user interface ProB2-UI]] based on Java FX and the ProB2-Java-API of ProB. It is available as a  [[Download#ProB2_UI_using_Java_FX| separate download]]. It contains [[VisB]] for SVG-based visualizations (as a successor to BMotionStudio).&lt;br /&gt;
* [[ProB_for_Event-B|ProB for use within Rodin]], the toolset for Event-B. It is [[Download#ProB_for_Rodin|available as a plugin]].&lt;br /&gt;
* An API for using ProB from Java, called [[ProB_Java_API|ProB2-Java-API]] (aka ProB2). It is available via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
* A [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel kernel for Jupyter], allowing to use B and ProB from within Jupyter notebooks. It is available via [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel a seperate installation procedure].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
The core of ProB is implemented in [http://www.sics.se/isl/sicstuswww/site/index.html SICStus Prolog] (but can be run without a SICStus Prolog license). The ProB constraint solver is implemented using co-routining and the CLP(FD) finite domain library of SICStus. An alternate [[Using_ProB_with_KODKOD | constraint solver based on Kodkod (and thus SAT)]] is also available within ProB, as is [[Using_ProB_with_Z3|an integration with the SMT solver Z3]]. An alternate [[TLC|model checking engine (using TLC)]] well-suited for lower level B specifications is available as is an integration with [https://github.com/utwente-fmt/ltsmin/releases LTSmin] as [[LTSmin|model checking backend]].&lt;br /&gt;
The [[ProBLicence | ProB Licence can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; style=&amp;quot;background:#EDF2F2;padding:15px;&amp;quot; | &#039;&#039;&#039;News&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-11-10&#039;&#039;&#039;&lt;br /&gt;
Michael Leuschel and his group win [https://prologyear.logicprogramming.org/ColmerauerPrize.html  first edition of Colmerauer Prize] for ProB&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Identifiers between backquotes, flexible JSON trace replay, DPLLT solving, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.0]] is available. Improved support for infinite sets, operation caching, faster LTL checking for safety formulas, more compact .prob files, [[VisB|VisB]] HTML export, constructive Z3 translation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-01-26&#039;&#039;&#039;&lt;br /&gt;
[[Download#ProB2-UI_using_Java_FX|ProB2-UI 1.1.0]] is available, contains [[VisB|VisB]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]]. Highlights: [[Well-Definedness_Checking|well-definedness prover]], [[Summary_of_B_Syntax#Reals:|REAL datatype]], -lint comand for [[Editors_for_ProB#VSCode|VSCode]] and [[Editors_for_ProB#Atom|Atom]], improved unsat core.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]]. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]]. Highlights: Unicode support, regular expression library, memoization. [[Download#ProB2_UI_using_Java_FX|New ProB2 UI]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]]. Highlights: [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV support.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] Highlights:  [[Tips:_B_Idioms |LET and IF-THEN-ELSE for expressions and predicates]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 as backend]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[DownloadPriorVersions |ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, [[TLC|integration of the TLC model checker]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039; [[ProB_Logic_Calculator|ProB Logic Calculator]] available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
[[Download#Short Release History|More in Release History]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
ProB covers a [[Summary of B Syntax|large part of B]], and we are striving towards full coverage of Atelier B constructs. ProB supports B features such as non-deterministic operations, arbitrary quantification, sets, sequences, functions, lambda abstractions, set comprehensions, records, and many more. ProB does support multiple machines, refinements, and implementations. ProB can also be used for automated [[Refinement Checking|refinement checking]] and [[LTL Model Checking|LTL model checking]]. It also [[CSP-M|supports CSP-M]] process descriptions, to be used on their own or to guide B machines for specification and property validation. The state space of the specifications can be [[Graphical Viewer|graphically visualized]]. &lt;br /&gt;
ProB supports Z specifications (ProB in this context is sometimes called [[ProZ]]) as well as [[TLA|TLA+ specifications]]. &lt;br /&gt;
ProB can be used within Rodin and [http://www.atelierb.eu/en/ Atelier-B as a disprover and prover].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Citing ProB ===&lt;br /&gt;
&lt;br /&gt;
The initial conference publication was:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael Butler (2003): ProB: A Model Checker for B. In Keijiro Araki, Stefania Gnesi &amp;amp; Dino Mandrioli, editors: FME 2003: Formal Methods, LNCS 2805, Springer-Verlag, pp. 855–874, doi:10.1007/978-3-540-45236-2 46.&lt;br /&gt;
&lt;br /&gt;
A later journal article describes ProB in more detail:&lt;br /&gt;
* Michael Leuschel &amp;amp; Michael J. Butler (2008): ProB: an automated analysis toolset for the B method. STTT 10(2), pp. 185–203. Available at [http://dx.doi.org/10.1007/s10009-007-0063-9 http://dx.doi.org/10.1007/s10009-007-0063-9].&lt;br /&gt;
&lt;br /&gt;
For convenience we also provide  [[Citing ProB|Bibtex entries for the above references]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5505</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5505"/>
		<updated>2023-08-14T16:54:12Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Short Release History */ AAAAAAAAAAAAAA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5504</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5504"/>
		<updated>2023-08-14T16:49:52Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Short Release History */ The dates were an inconsistent mix of d/m/y and m/d/y AAAAAA I hope this is correct now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-12-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-10-06&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-12-15&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-07-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-10-01&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-03-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-10-05&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-07-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-10-20&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-04-22&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-02-19&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-29&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-08-18&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-03-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-03-30&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-11-21&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-02-10&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-07-12&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5503</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5503"/>
		<updated>2023-08-14T16:45:40Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Short Release History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-10-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2023-04-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-29-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2021-06-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-15-12&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2020-19-02&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-11-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-08-11&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2019-12-07&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-01-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2018-20-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-05-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2017-11-07&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-20-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2016-22-04&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2015-19-02&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-29-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2014-18-08&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2013-04-03&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-08-10&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2012-30-03&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-21-11&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2011-10-02&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2010-07-30&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-12-07&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2009-03-20&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=DownloadPriorVersions&amp;diff=5502</id>
		<title>DownloadPriorVersions</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=DownloadPriorVersions&amp;diff=5502"/>
		<updated>2023-08-11T10:30:38Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Prior Versions of ProB}}&lt;br /&gt;
Below are details for releases going back to ProB 1.3.1.&lt;br /&gt;
If you are interested in earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
A version of ProB with built-in support for timed CSP  developed by&lt;br /&gt;
[http://cs.swansea.ac.uk/~csnga/timed-csp-simulator.html Swansea University (UK)] is available on here:&lt;br /&gt;
https://stups.hhu-hosting.de/downloads/prob/timed-csp/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 4.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 4.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 4.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.aarch64.notarized.zip Zipfile] (ARM notarized)&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.x86_64.notarized.zip Zipfile] (Intel notarized)&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.11.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 29.12.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 29.12.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 29.12.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized)   &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.11.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 6.10.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer, [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5],  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 6.10.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [https://www.activestate.com/products/tcl/downloads/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 6.10.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized Tk 8.5)   &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB_mac_os.x86_64.Tk86.notarized.zip Zipfile] (notarized Tk 8.6)   &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., 8.5.18.0),&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.10.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.1.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer, [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5],  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.1.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [https://www.activestate.com/products/tcl/downloads/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 21.1.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized) &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., 8.5.18.0),&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.10.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 15.12.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 15.12.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 15.12.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized) &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.3-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 19.2.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 19.2.2020  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 19.2.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB_1.9.3.mac_os.notarized.zip Zipfile] (notarized) &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.2-release&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 11.11.2019 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 11.11.2019  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/Download_windows.php GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 11.11.2019 &lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.mac_os.x86_64.tar.gz Tarball] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.1-release&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 8.11.2019 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 8.11.2019  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/Download_windows.php GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 8.11.2019 &lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.mac_os.x86_64.tar.gz Tarball] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.0-release&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 12.7.2019 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 12.7.2019  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/Download_windows.php GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 12.7.2019 &lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.mac_os.x86_64.tar.gz Tarball] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.8.2-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 1.10.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 1.10.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 1.10.2018&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.8.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 20.3.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 20.3.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 20.3.2018&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.7.1-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 5. October 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 5. October 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 12. October 2017&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.7.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 11. July 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 11. July 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 11. July 2017&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.11 (El Capitain) recommended, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5],&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.6.1-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 22. April 2016&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.11 (El Capitain) recommended, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5],&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.6.0-SR1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 22. April 2016&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.mac_os.10.11.4.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.11 (El Capitain) recommended, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5],&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.5.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 19. February 2015&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 5.0 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 19. February 2015&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 5.0 or newer, [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 19. February 2015&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.mac_os.10.6.8.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5]&lt;br /&gt;
Java 5.0 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.3.6-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 4. March 2013&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.linux32.tar.gz Tarball (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.linux64.tar.gz Tarball (64bit)],&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 5.0 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 4. March 2013&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.windows.zip Zipfile (with probcli)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 5.0 or newer, [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X, Snow Leopard, Intel (64-bit)&lt;br /&gt;
| 4. March 2013&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.mac_os.10.6.8.x86_64.tar.gz Tarball (with probcli)] &lt;br /&gt;
| [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (do not use version 8.5.12.0, use [http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ 8.5.11] or use at least 8.5.13)&lt;br /&gt;
[http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X, Leopard, Intel (32-bit)&lt;br /&gt;
| 4. March 2013&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.mac_os.10.5.8.i386.tar.gz Tarball (with probcli)]&lt;br /&gt;
| [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5]  (do not use version 8.5.12.0, use [http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ 8.5.11]),&lt;br /&gt;
[http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5501</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5501"/>
		<updated>2023-08-11T10:30:04Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal ARM/Intel notarized)&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel).&lt;br /&gt;
macOS releases of ProB 1.12.0 and later also support &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit ARM/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/8/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=DownloadPriorVersions&amp;diff=5500</id>
		<title>DownloadPriorVersions</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=DownloadPriorVersions&amp;diff=5500"/>
		<updated>2023-08-11T10:27:10Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Remove old info about problem with Oracle Java 17 that was fixed in SICStus 4.7.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Prior Versions of ProB}}&lt;br /&gt;
Below are details for releases going back to ProB 1.3.1.&lt;br /&gt;
If you are interested in earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
A version of ProB with built-in support for timed CSP  developed by&lt;br /&gt;
[http://cs.swansea.ac.uk/~csnga/timed-csp-simulator.html Swansea University (UK)] is available on here:&lt;br /&gt;
https://stups.hhu-hosting.de/downloads/prob/timed-csp/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 4.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 4.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 4.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.aarch64.notarized.zip Zipfile] (Arm notarized)   &amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0/ProB_mac_os.x86_64.notarized.zip Zipfile] (Intel  notarized)   &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.11.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 29.12.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 29.12.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 29.12.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.1/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized)   &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.11.0&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 6.10.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer, [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5],  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 6.10.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [https://www.activestate.com/products/tcl/downloads/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 6.10.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized Tk 8.5)   &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.11.0/ProB_mac_os.x86_64.Tk86.notarized.zip Zipfile] (notarized Tk 8.6)   &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., 8.5.18.0),&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.10.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 21.1.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer, [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5],  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 21.1.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [https://www.activestate.com/products/tcl/downloads/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 21.1.2021 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.2/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized) &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., 8.5.18.0),&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.10.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 15.12.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 15.12.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 15.12.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.10.0-final/ProB_mac_os.x86_64.notarized.zip Zipfile] (notarized) &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 8 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.3-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 19.2.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 19.2.2020  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/download/ GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 19.2.2020 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.3/ProB_1.9.3.mac_os.notarized.zip Zipfile] (notarized) &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/download/ Graphviz]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.2-release&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 11.11.2019 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 11.11.2019  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/Download_windows.php GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 11.11.2019 &lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.2/ProB.mac_os.x86_64.tar.gz Tarball] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.1-release&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 8.11.2019 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 8.11.2019  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/Download_windows.php GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 8.11.2019 &lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.1/ProB.mac_os.x86_64.tar.gz Tarball] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download (64 bit)&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.9.0-release&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 12.7.2019 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 12.7.2019  &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.windows64-tcltk85.zip Zipfile] (Tcl/Tk 8.5)  &amp;lt;br/&amp;gt;&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk  for Windows],&lt;br /&gt;
Java 7 or newer, [http://www.graphviz.org/Download_windows.php GraphViz], &amp;lt;br/&amp;gt; &lt;br /&gt;
[[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 12.7.2019 &lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.9.0/ProB.mac_os.x86_64.tar.gz Tarball] &amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.8.2-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 1.10.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 1.10.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 1.10.2018&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.2/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.8.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 20.3.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5,  [http://www.graphviz.org/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 20.3.2018 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 20.3.2018&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.8.0/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.7.1-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 5. October 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 5. October 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 12. October 2017&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.1/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.9 (Mavericks) or newer, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (e.g., [http://downloads.activestate.com/ActiveTcl/releases/8.5.18.0/ 8.5.18.0]),&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.7.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 11. July 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 11. July 2017&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 11. July 2017&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.7.0/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.11 (El Capitain) recommended, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5],&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.6.1-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]] [http://www.graphviz.org/Download_windows.php GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 22. April 2016&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.1/ProB.mac_os.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.11 (El Capitain) recommended, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5],&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.6.0-SR1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 7 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows &lt;br /&gt;
| 22. April 2016&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 7 or newer, [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 22. April 2016&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.6.0/ProB.mac_os.10.11.4.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| OS X 10.11 (El Capitain) recommended, [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5],&lt;br /&gt;
Java 7 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.5.0-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 19. February 2015&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.linux32.tar.gz Tarball (with probcli) (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.linux64.tar.gz Tarball (with probcli) (64bit)]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 5.0 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 19. February 2015&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.windows32.zip Zipfile (with probcli) (32bit)],&amp;lt;br/&amp;gt; [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.windows64.zip Zipfile (with probcli) &amp;lt;br/&amp;gt;(64bit)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 5.0 or newer, [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| OS X&lt;br /&gt;
| 19. February 2015&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.5.0/ProB.mac_os.10.6.8.x86_64.tar.gz Tarball (with probcli) (64bit)] [https://github.com/hhu-stups/homebrew-prob Homebrew Tap]&lt;br /&gt;
| [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5]&lt;br /&gt;
Java 5.0 or newer, [http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.3.6-final&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 4. March 2013&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.linux32.tar.gz Tarball (32bit)],&amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.linux64.tar.gz Tarball (64bit)],&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 5.0 or newer, Tcl/Tk 8.5&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 4. March 2013&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.windows.zip Zipfile (with probcli)]&lt;br /&gt;
| [http://downloads.activestate.com/ActiveTcl/releases/ Tcl/Tk 8.5 for Windows],&lt;br /&gt;
Java 5.0 or newer, [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X, Snow Leopard, Intel (64-bit)&lt;br /&gt;
| 4. March 2013&lt;br /&gt;
|  [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.mac_os.10.6.8.x86_64.tar.gz Tarball (with probcli)] &lt;br /&gt;
| [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5] (do not use version 8.5.12.0, use [http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ 8.5.11] or use at least 8.5.13)&lt;br /&gt;
[http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|-&lt;br /&gt;
| Mac OS X, Leopard, Intel (32-bit)&lt;br /&gt;
| 4. March 2013&lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.3.6/ProB.mac_os.10.5.8.i386.tar.gz Tarball (with probcli)]&lt;br /&gt;
| [http://www.activestate.com/activetcl/downloads/ Tcl/TK 8.5]  (do not use version 8.5.12.0, use [http://downloads.activestate.com/ActiveTcl/releases/8.5.11.1/ 8.5.11]),&lt;br /&gt;
[http://www.pixelglow.com/graphviz/ Graphviz for Mac OS X]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5499</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5499"/>
		<updated>2023-08-11T10:27:05Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: Remove old info about problem with Oracle Java 17 that was fixed in SICStus 4.7.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.2&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 10.8.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.2/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
You should probably start ProB using the &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script: it will auto-detect Tcl/Tk versions and set the SP_TCL_DSO environment variable.&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
The &amp;lt;tt&amp;gt;StartProB.sh&amp;lt;/tt&amp;gt; script should set SP_TCL_DSO automatically.&lt;br /&gt;
You can also define and export this variable yourself 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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
On macOS you should probably select Preferences -&amp;gt; Graphical Viewer -&amp;gt; PDF within ProB Tcl/Tk, as currently all GraphViz viewer applications seem to crash on current macOS systems.&lt;br /&gt;
&lt;br /&gt;
You can also manually set the DOT (path_to_dot) preference if ProB cannot find the Graphviz dot binary you have installed. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/8/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.2]] is available. [[VisB#VisB_DEFINITIONS_2 |VisB]] improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5488</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5488"/>
		<updated>2023-08-01T09:43:18Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* macOS issues */ Update instructions for opening not signed/notarized app&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser| for Oracle&#039;s Java 17 read instructions below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, right-click the app, select &amp;quot;Open&amp;quot;, and confirm the security dialog.&lt;br /&gt;
If the dialog still doesn&#039;t give you an option to open the app, click &amp;quot;Cancel&amp;quot; and do the same thing again.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
If you want to use Orcale&#039;s Java 17 on Windows 11 you should use our latest beta or nightly release (see [https://github.com/hhu-stups/prob-issues/issues/101 this issue]).&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5487</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5487"/>
		<updated>2023-08-01T09:34:21Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI */ Update macOS snapshot links for new Apple Silicon build&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser| for Oracle&#039;s Java 17 read instructions below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS (Intel) application DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-aarch64-1.2.1.dmg macOS (Apple Silicon) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-x86_64-1.2.1.dmg macOS (Intel) application DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
If you want to use Orcale&#039;s Java 17 on Windows 11 you should use our latest beta or nightly release (see [https://github.com/hhu-stups/prob-issues/issues/101 this issue]).&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5479</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5479"/>
		<updated>2023-06-22T11:36:35Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Editor Support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser| for Oracle&#039;s Java 17 read instructions below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS application (Intel) DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.dmg macOS application (Intel) DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] extension for the VSCode editor. It integrates with [[Using the Command-Line Version of ProB|command line tool probcli]] to obtain error markers for syntax and type errors. It can also be used for [[Well-Definedness Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
If you want to use Orcale&#039;s Java 17 on Windows 11 you should use our latest beta or nightly release (see [https://github.com/hhu-stups/prob-issues/issues/101 this issue]).&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5478</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5478"/>
		<updated>2023-06-22T11:34:55Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* Editor Support */ Remove Atom package because Atom is dead now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser| for Oracle&#039;s Java 17 read instructions below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS application (Intel) DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.dmg macOS application (Intel) DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a similar package called  [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] for the VSCode editor. It can also be used for [[Well-Definedness_Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
If you want to use Orcale&#039;s Java 17 on Windows 11 you should use our latest beta or nightly release (see [https://github.com/hhu-stups/prob-issues/issues/101 this issue]).&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5477</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5477"/>
		<updated>2023-06-22T10:59:53Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI */ Link release history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser| for Oracle&#039;s Java 17 read instructions below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
See the [https://github.com/hhu-stups/prob2_ui/blob/develop/doc/prob2ui_release_history.md release history] for what&#039;s new.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS application (Intel) DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.dmg macOS application (Intel) DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a package [https://atom.io/packages/language-b-eventb 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 [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]] to obtain error markers for syntax and type errors.&lt;br /&gt;
&lt;br /&gt;
* There is a similar package called  [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] for the VSCode editor. It can also be used for [[Well-Definedness_Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
If you want to use Orcale&#039;s Java 17 on Windows 11 you should use our latest beta or nightly release (see [https://github.com/hhu-stups/prob-issues/issues/101 this issue]).&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=Download&amp;diff=5476</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=Download&amp;diff=5476"/>
		<updated>2023-06-22T10:58:43Z</updated>

		<summary type="html">&lt;p&gt;David Geleßus: /* ProB2-UI */ Release 1.2.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Latest Release ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
Note: please use the provided start scripts (StartProB.sh or StartProBWin.bat) to start ProB.&lt;br /&gt;
The list of changes can be found in the [[ProB_Release_History | ProB release history]].&lt;br /&gt;
&lt;br /&gt;
Details of the [[ProBLicence| ProB Licence can be found here]].&lt;br /&gt;
ProB is free to use and open source. For commercial support contact  [https://www.stups.uni-duesseldorf.de/~leuschel/ 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 [https://de.wikipedia.org/wiki/EN_50128 EN50128].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-bordered wikitable&amp;quot; &amp;lt;!-- table and table-bordered for Bootstrap (ProB skin), wikitable for MediaWiki (Vector, MonoBook, etc. skins) --&amp;gt;&lt;br /&gt;
! Platform&lt;br /&gt;
! Release Date&lt;br /&gt;
! Download&lt;br /&gt;
! Dependencies&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:lightgrey;&amp;quot; | 1.12.1&lt;br /&gt;
|-&lt;br /&gt;
| Linux &lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.linux64.tar.gz Tarball]&amp;lt;br/&amp;gt;&lt;br /&gt;
| Java 8 or newer ([[#Java Requirements for B parser|see below]]), Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Linux|see below]]), [https://www.graphviz.org/download/ GraphViz]&lt;br /&gt;
|-&lt;br /&gt;
| Windows&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64.zip Zipfile] (Tcl/Tk 8.6), &amp;lt;br/&amp;gt;[https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.windows64-tcltk-85.zip Zipfile] (Tcl/Tk 8.5)&lt;br /&gt;
| Tcl/Tk 8.5 or 8.6 ([[#Tcl/Tk on Windows|see below]]), Java 8 or newer ([[#Java Requirements for B parser| for Oracle&#039;s Java 17 read instructions below]]), [https://www.graphviz.org/download/ GraphViz], [[Windows Installation Instructions]]&lt;br /&gt;
|-&lt;br /&gt;
| macOS&lt;br /&gt;
| 30.4.2023 &lt;br /&gt;
| [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.1/ProB.macos.zip Zipfile] (Universal Arm/Intel notarized)   &amp;lt;br/&amp;gt; &lt;br /&gt;
[https://github.com/hhu-stups/homebrew-prob Homebrew Tap] (not yet updated)&lt;br /&gt;
| macOS 10.14 (Mojave) or newer, Tcl/Tk ([[#Tcl/Tk on macOS|see below]]), Java 8 or newer ([[#Java Requirements for B parser|see below]]), [https://www.graphviz.org/download/ Graphviz] ([[#Graphviz_Requirements|see below]])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. More details [[#Java Requirements for B parser|are available below]].&lt;br /&gt;
&lt;br /&gt;
The Graphical User Interface of ProB Tcl/Tk requires Tcl/Tk 8.5 or 8.6. More details [[#Tcl/Tk Requirements for ProB Tcl/Tk|are available below]].&lt;br /&gt;
The default Tcl/Tk on macOS is broken and will result in &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt;, and you have to [[#Tcl/Tk Requirements for ProB Tcl/Tk|install another version of Tcl/Tk]].&lt;br /&gt;
All releases include the command-line version &amp;lt;b&amp;gt;probcli&amp;lt;/b&amp;gt; which does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require Tcl/Tk.&lt;br /&gt;
&lt;br /&gt;
Releases are compiled for the &#039;&#039;&#039;x86_64&#039;&#039;&#039; architecture (64-bit Intel) or for &#039;&#039;&#039;aarch64&#039;&#039;&#039; (64-bit Arm/Apple Silicon).&lt;br /&gt;
The last version built for x86 (32-bit Intel) is ProB 1.8.0 (see [[DownloadPriorVersions|prior versions]]).&lt;br /&gt;
If you are using an unsupported architecture or system, you may still be able to [[Running ProB from source|run ProB from source]].&lt;br /&gt;
&lt;br /&gt;
Note that: on &amp;lt;b&amp;gt;macOS&amp;lt;/b&amp;gt; you  still have to right-click on the application and use &amp;quot;Open&amp;quot;, even though ProB Tcl/Tk (and probcli and all libraries) are signed and notarized. &lt;br /&gt;
 &lt;br /&gt;
=== Latest Beta Release ===&lt;br /&gt;
&lt;br /&gt;
The latest beta release is [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/1.12.0-beta2 1.12.0-beta2]&lt;br /&gt;
(which is older than the current final release).&lt;br /&gt;
An official beta release always passes all of ProB&#039;s tests.&lt;br /&gt;
However, we do not follow the stringent checklist for final releases&lt;br /&gt;
(e.g., checking SICStus Prolog Spider warnings, checking coverage and additional manual&lt;br /&gt;
UI tests).&lt;br /&gt;
Also, we do not store coverage reports and other information necessary for T2 certification.&lt;br /&gt;
&lt;br /&gt;
=== Nightly Builds ===&lt;br /&gt;
&lt;br /&gt;
More current [https://stups.hhu-hosting.de/downloads/prob/tcltk/nightly/ nightly integration builds] are also available.&lt;br /&gt;
These releases are usually updated every night and old versions are not stored.&lt;br /&gt;
&lt;br /&gt;
Note for macOS users: Nightly builds of ProB are not signed or notarized, so macOS 10.15 and later (Catalina, Big Sur or Monterey, Ventura) will refuse to run them.&lt;br /&gt;
As a workaround, you will need to run &amp;lt;code&amp;gt;xattr -r -d com.apple.quarantine *&amp;lt;/code&amp;gt; inside the ProB directory before launching ProB.&lt;br /&gt;
The stable and beta releases listed above are signed and notarized, so they will run without extra steps.&lt;br /&gt;
&lt;br /&gt;
Automatically generated test [https://stups.hhu-hosting.de/internal/coverage/html/ coverage reports are also available].&lt;br /&gt;
They are usually updated once per week.&lt;br /&gt;
&lt;br /&gt;
=== Sourcecode ===&lt;br /&gt;
&lt;br /&gt;
You can download the latest Prolog sourcecode snapshot from: https://stups.hhu-hosting.de/downloads/prob/source/&lt;br /&gt;
&lt;br /&gt;
The source code for the ProB parsers (B, LTL, ...) can be obtained from: https://github.com/hhu-stups/probparsers&lt;br /&gt;
&lt;br /&gt;
=== Prior Versions ===&lt;br /&gt;
&lt;br /&gt;
Prior Versions of ProB going back to 1.3.1 [[DownloadPriorVersions|are available for download here]]. &lt;br /&gt;
If you are interested in still earlier releases, please have a look at the [https://stups.hhu-hosting.de/downloads/prob/tcltk/releases/ Download directory].&lt;br /&gt;
&lt;br /&gt;
== Other ProB tools ==&lt;br /&gt;
&lt;br /&gt;
=== ProB Jupyter Kernel ===&lt;br /&gt;
&lt;br /&gt;
You can now create Jupyter Notebooks in B using the ProB Jupyter kernel.&lt;br /&gt;
Downloads, instructions, and source code can be found on [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel its own page].&lt;br /&gt;
&lt;br /&gt;
You can [https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob2-jupyter-kernel.git/master?filepath=notebooks try out the ProB Jupyter kernel in your browser] without installing it first.&lt;br /&gt;
Note that &#039;&#039;&#039;notebooks are not saved permanently in this online version!&#039;&#039;&#039;&lt;br /&gt;
To keep your notebooks, you &#039;&#039;must&#039;&#039; download them before closing the page.&lt;br /&gt;
&lt;br /&gt;
=== ProB for Rodin ===&lt;br /&gt;
To install ProB for Rodin, first download a current version of Rodin (e.g., [https://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.8/ Rodin 3.8]). Inside Rodin, choose Help -&amp;gt; Install New Software and choose the pre-configured ProB update site.&lt;br /&gt;
&lt;br /&gt;
More [[Tutorial Rodin First Step|detailed installation instructions and a brief tutorial]] are available.&lt;br /&gt;
&lt;br /&gt;
* Nightly builds of ProB for Rodin 3 can be obtained from within Rodin by using the update site https://stups.hhu-hosting.de/rodin/prob1/nightly.&lt;br /&gt;
* Nightly builds of ProB 2 (deprecated) for Rodin 3 can be obtained from within Rodin using the update site https://stups.hhu-hosting.de/rodin/prob2/nightly/ (this will probably be replaced by a Java FX version in the future)&lt;br /&gt;
&lt;br /&gt;
=== ProB2-UI ===&lt;br /&gt;
&lt;br /&gt;
Version 1.2.0 of the new JavaFX-based [[ProB2-UI]] is available.&lt;br /&gt;
You can use these stand-alone versions which come bundled with the right Java runtime environment:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.exe Windows installer]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/ProB%202%20UI-1.2.0.dmg macOS application (Intel) DMG] (not signed/notarized yet! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui_1.2.0-1_amd64.deb Debian package]&lt;br /&gt;
&lt;br /&gt;
You can also download a [https://stups.hhu-hosting.de/downloads/prob2/1.2.0/prob2-ui-1.2.0-multi.jar multi-platform jar], which works Java 11 or later (and with Java 8 versions which have JavaFX included) on all platforms (Windows, macOS, Linux).&lt;br /&gt;
&lt;br /&gt;
Details about new features and improvements can be found in the [[ProB2-UI Release History|release history]], along with download links for older versions.&lt;br /&gt;
&lt;br /&gt;
Snapshot builds of the current &#039;&#039;development&#039;&#039; version of ProB2-UI (1.2.1-SNAPSHOT) are also available:&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.exe Windows installer snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/ProB%202%20UI-1.2.1.dmg macOS application (Intel) DMG snapshot] (not signed/notarized! [[#macOS issues|see below]])&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui_1.2.1-1_amd64.deb Debian package snapshot]&lt;br /&gt;
* [https://stups.hhu-hosting.de/downloads/prob2/snapshot/prob2-ui-1.2.1-SNAPSHOT-multi.jar Multi-platform jar snapshot]&lt;br /&gt;
&lt;br /&gt;
The source code for ProB2-UI is available at https://github.com/hhu-stups/prob2_ui and can be built by following [https://github.com/hhu-stups/prob2_ui#running-from-source these instructions].&lt;br /&gt;
&lt;br /&gt;
The underlying Java API [[ProB_Java_API|ProB2]] of ProB2-UI is available to Java developers via [https://search.maven.org/search?q=a:de.prob2.kernel Maven Central].&lt;br /&gt;
Its source code can be obtained from: https://github.com/hhu-stups/prob2_kernel.&lt;br /&gt;
&lt;br /&gt;
==== macOS issues ====&lt;br /&gt;
&lt;br /&gt;
When you run the macOS app for the first time, you might have to open the app &#039;&#039;twice&#039;&#039; for ProB 2 UI to start properly.&lt;br /&gt;
This should only happen once.&lt;br /&gt;
&lt;br /&gt;
The ProB 2 UI macOS app releases are signed and notarized, so they should run without issues on current macOS versions.&lt;br /&gt;
However, the multi-platform jar and snapshot app builds are &#039;&#039;not&#039;&#039; signed or notarized, so newer macOS versions will refuse to run them or say that the application is damaged.&lt;br /&gt;
As a workaround, run this command in the folder where &#039;&#039;ProB 2 UI.app&#039;&#039; is located:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xattr -r -d com.apple.quarantine &amp;quot;ProB 2 UI.app&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The multi-platform jar can also be started from the command line, which bypasses the signing/notarization check:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
java -jar prob2-ui-1.2.0-multi.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the multi-platform jar on macOS, we recommend using Java 15 or later.&lt;br /&gt;
Older Java/JavaFX versions may lead to an incorrect system font resulting in gibberish text display.&lt;br /&gt;
Alternatively, use the macOS app build, which comes with Java 17 and does not have this issue.&lt;br /&gt;
&lt;br /&gt;
The ProB2 kernel (aka the ProB-Java-API) is [https://central.sonatype.com/artifact/de.hhu.stups/de.prob2.kernel/4.12.1 available on maven].&lt;br /&gt;
&lt;br /&gt;
=== Editor Support ===&lt;br /&gt;
&lt;br /&gt;
* A [https://github.com/bivab/prob.vim VIM plugin for ProB is available]. It shows a quick fix list of parse and type errors for classical B machines (.mch) using the [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]]. VIM has builtin syntax highlighting support for [https://github.com/vim/vim/blob/master/runtime/syntax/b.vim B].&lt;br /&gt;
&lt;br /&gt;
* There is a package [https://atom.io/packages/language-b-eventb 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 [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]] to obtain error markers for syntax and type errors.&lt;br /&gt;
&lt;br /&gt;
* There is a similar package called  [https://github.com/hhu-stups/b-language-extension B/ProB Language Support] for the VSCode editor. It can also be used for [[Well-Definedness_Checking#VSCode|well-definedness checking]].&lt;br /&gt;
&lt;br /&gt;
* Some [https://github.com/leuschel/bbedit-prob BBedit Language modules for B, TLA+, CSP and Prolog] are available; these do not use [[Using_the_Command-Line_Version_of_ProB|command line tool probcli]].&lt;br /&gt;
&lt;br /&gt;
== Java Requirements for B parser ==&lt;br /&gt;
The B parser of ProB requires Java 8 or newer. Java 11, 17, etc. are also fully supported.&lt;br /&gt;
ProB 1.9.3 is the last version to support Java 7. ProB 1.5.0 is the last version to support Java 6.&lt;br /&gt;
&lt;br /&gt;
You can install a Java Runtime Environment (JRE) from various sources, such as [https://adoptium.net/ Eclipse Adoptium], [https://www.azul.com/downloads/?version=java-8-lts&amp;amp;package=jre-fx Azul Zulu], or your system package manager.&lt;br /&gt;
If you want to use Orcale&#039;s Java 17 on Windows 11 you should use our latest beta or nightly release (see [https://github.com/hhu-stups/prob-issues/issues/101 this issue]).&lt;br /&gt;
&lt;br /&gt;
Note: on some systems (macOS) you may have to install the full Java Development Kit (JDK), and not just the JRE, so that Java 8 becomes available to the command-line tools.&lt;br /&gt;
Type &amp;lt;code&amp;gt;java -version&amp;lt;/code&amp;gt; to check which version is used by default for command-line tools; see also [http://stackoverflow.com/questions/21964709/how-to-set-or-change-the-default-java-jdk-version-on-os-x this discussion on StackOverflow].&lt;br /&gt;
In case you have trouble starting the Java parser you can now set the &amp;lt;code&amp;gt;JAVA_PATH&amp;lt;/code&amp;gt; preference of ProB to point to the &amp;lt;code&amp;gt;java&amp;lt;/code&amp;gt; tool (or java.exe on Windows).&lt;br /&gt;
&lt;br /&gt;
To check whether ProB can correctly use its Java parser you can type the following (using probcli.exe on Windows):&lt;br /&gt;
 probcli -version -v&lt;br /&gt;
This will try and start the parser and obtain the parser version.&lt;br /&gt;
In case Java is not correctly installed you should get an error message.&lt;br /&gt;
If you see the error message&lt;br /&gt;
 &amp;lt;tt&amp;gt;Unsupported major.minor version 52.0&amp;lt;/tt&amp;gt;&lt;br /&gt;
this means you do not have Java 8 or newer installed. You can try setting the path to the correct java version by setting the JAVA_PATH preference as follows:&lt;br /&gt;
 probcli -p JAVA_PATH path/to/java -version -v&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk Requirements for ProB Tcl/Tk ==&lt;br /&gt;
&lt;br /&gt;
ProB Tcl/Tk requires an installation of Tcl/Tk 8.5 or Tcl/Tk 8.6. The command-line tool probcli does &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; require this.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on macOS ===&lt;br /&gt;
Important note: macOS comes pre-installed with a version of Tcl/Tk which is broken.&lt;br /&gt;
This may result in the display of unreadable &amp;lt;b&amp;gt;black windows&amp;lt;/b&amp;gt; or crashes in the standard file dialogs.&lt;br /&gt;
There are various options to install Tcl/Tk:&lt;br /&gt;
* with Homebrew using the [https://formulae.brew.sh/formula/tcl-tk tcl-tk formula]&lt;br /&gt;
* with [https://ports.macports.org/port/tcl/ MacPorts]&lt;br /&gt;
* use the  [http://www.activestate.com/activetcl/downloads/ ActiveTcl version of Tcl/Tk]&lt;br /&gt;
Below are more details:&lt;br /&gt;
&lt;br /&gt;
==== Tcl/Tk from Homebrew or MacPorts ====&lt;br /&gt;
&lt;br /&gt;
You can install a newer Tcl/Tk (e.g., 8.6.12) using [https://brew.sh &amp;lt;b&amp;gt;Homebrew&amp;lt;/b&amp;gt;] or [https://www.macports.org &amp;lt;b&amp;gt;MacPorts&amp;lt;/b&amp;gt;].&lt;br /&gt;
Note: In the earlier release 8.6.11 [https://bugs.python.org/issue44828 file open and file save dialogs will not work].&lt;br /&gt;
For Homebrew the command to install the[https://formulae.brew.sh/formula/tcl-tk tcl-tk formula] is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 brew install tcl-tk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, as the location of the libraries is not standard, you have to define the variable &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export SP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you have uses MacPorts the path is probably &amp;lt;tt&amp;gt;/opt/local/lib/libtcl.dylib&amp;lt;/tt&amp;gt;.&lt;br /&gt;
You can also set the variable by adding &amp;lt;tt&amp;gt;-DSP_TCL_DSO=/usr/local/Cellar/tcl-tk/8.6.12/lib/libtcl8.6.dylib&amp;lt;/tt&amp;gt; to the command starting ProB. You may also have to install &amp;lt;tt&amp;gt;tk-table&amp;lt;/tt&amp;gt; package yourself (it is bundled with Active Tcl).&lt;br /&gt;
&lt;br /&gt;
==== Active Tcl ====&lt;br /&gt;
&lt;br /&gt;
The [http://www.activestate.com/activetcl/downloads/ the ActiveTcl version of Tcl/Tk] is automatically recognised by ProB and you do not have to set &amp;lt;tt&amp;gt;SP_TCL_DSO&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
However, in Active Tcl/Tk 8.6 on macOS the double click in the &amp;quot;Operations View&amp;quot; or other views  is not working correctly.&lt;br /&gt;
You have to hit the RETURN key in the &amp;quot;Operations View&amp;quot; or right-click on an operation and select &amp;quot;Perform ...&amp;quot;  to execute an operation until this is fixed.&lt;br /&gt;
The older ersion [http://bugs.python.org/issue15853 8.5.12 has a bug related to copying text], see also [http://sourceforge.net/tracker/?func=detail&amp;amp;aid=3555211&amp;amp;group_id=12997&amp;amp;atid=112997_type here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Other Notes ====&lt;br /&gt;
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.&lt;br /&gt;
If you see the message &amp;quot;&amp;lt;tt&amp;gt;macOS 11 or later required !&amp;lt;/tt&amp;gt;&amp;quot;  in the terminal when launching &amp;lt;tt&amp;gt;prob&amp;lt;/tt&amp;gt; you should re-install Tcl/Tk as described above.&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Windows ===&lt;br /&gt;
We currently provide two downloads of ProB, one for Tcl/Tk 8.6 (which we recommend)&lt;br /&gt;
and a version for Tcl/Tk 8.5.&lt;br /&gt;
You can use for example the  [https://www.activestate.com/products/tcl/ ActiveTcl releases].&lt;br /&gt;
Note: For the 64 bit version of ProB for Windows, you have to install the 64 bit Tcl/Tk 8.5 version!&lt;br /&gt;
ProB 1.12 (currently available as nightly build) works with both Tcl/Tk 8.5 and 8.6.&lt;br /&gt;
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&lt;br /&gt;
base-tcl8.5-thread-win32-x86_64.dll.&lt;br /&gt;
You can either go to System -&amp;gt; Settings -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
or use the setx command for this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setx SP_TCL_DSO C:\Tcl\bin\base-tcl8.5-thread-win32-x86_64.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk on Linux ===&lt;br /&gt;
On Linux you can typically install Tcl/Tk using &amp;lt;tt&amp;gt;sudo apt-get install tcl8.5 tk8.5&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
On very recent Linux systems (such as Ubuntu 20.04) you may want to download (and compile) [https://www.tcl.tk/software/tcltk/downloadnow85.html Tcl/Tk 8.5] or use [https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/tcl8.5_8.5.19-4_amd64.deb.html packages from earlier releases].&lt;br /&gt;
&lt;br /&gt;
On Linux OpenSuse (12.3) you may have to perform the following for ProB to work:&lt;br /&gt;
 ln -s /usr/lib/libtk8.5.so /usr/lib/libtk8.5.so.0&lt;br /&gt;
 ln -s /usr/lib/libtcl8.5.so /usr/lib/libtcl8.5.so.0&lt;br /&gt;
&lt;br /&gt;
Also, some of the feature require the table extension, which can be installed like this:&lt;br /&gt;
 sudo apt install tk-table&lt;br /&gt;
Finally, support for .png ANIMATION_IMG declarations requires the Img package:&lt;br /&gt;
 sudo apt install libtk-img&lt;br /&gt;
&lt;br /&gt;
== Graphviz Requirements ==&lt;br /&gt;
&lt;br /&gt;
If you wish to view various visualizations generated by ProB Tcl/Tk or probcli you will need [http://www.graphviz.org/ GraphViz].&lt;br /&gt;
ProB may use the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; and a dot-file viewer such as &amp;lt;tt&amp;gt;dotty&amp;lt;/tt&amp;gt; (optionally in ProB Tcl/Tk).&lt;br /&gt;
&lt;br /&gt;
On Mac, the only working application to view dot files is [https://ports.macports.org/port/graphviz-gui/ graphviz-gui] by [https://www.macports.org MacPorts]. To install the application do this&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz-gui&amp;lt;/tt&amp;gt;&lt;br /&gt;
The viewer can now be found in /Applications/MacPorts/Graphviz.app (you may have to set the ProB graphical viewer preference &amp;lt;tt&amp;gt;dot_viewer&amp;lt;/tt&amp;gt; to this path).&lt;br /&gt;
Some ProB commands work directly with the command-line tool &amp;lt;tt&amp;gt;dot&amp;lt;/tt&amp;gt; which you can install with MacPorts like this:&lt;br /&gt;
* &amp;lt;tt&amp;gt;sudo port install graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
On Mac you can now install the latest version of Graphviz using [https://brew.sh HomeBrew]:&lt;br /&gt;
&lt;br /&gt;
 1. &amp;lt;tt&amp;gt;brew uninstall graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
 2. &amp;lt;tt&amp;gt;brew install graphviz --with-gts&amp;lt;/tt&amp;gt;&lt;br /&gt;
 3. &amp;lt;tt&amp;gt;brew link --overwrite graphviz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1. is optional; you only need to use it if you have a prior version of Graphviz installed.&lt;br /&gt;
Step3 links the binaries to /usr/local/bin.&lt;br /&gt;
This is probably better than using the [http://www.pixelglow.com/graphviz/ older version from Pixelglow].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Short Release History ==&lt;br /&gt;
&lt;br /&gt;
The full  [[ProB_Release_History | ProB release history can be found here]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/4/2023&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.12.0]] is available. Call stack infos, performance improvements in parser and solver,  new [[LTL_Model_Checking#Supported_Syntax |LTL]] operators, [[VisB#VisB_Additional_SVG_Objects|VisB]] improvements, reals/floats for [[Event-B_Theories|Rodin theories]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/12/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.11.1]] is available. Highlights: identifiers between backquotes, flexible JSON trace replay, DPLLT solving command, improvements to Z3 backend.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6/10/2021&#039;&#039;&#039;&lt;br /&gt;
[[Download|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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;15/12/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.10.0]] is available. Highlights: well-definedness prover, REAL datatype, -lint comand for VSCode and Atom, improved unsat core and error messages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2020&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.3]] is available. Highlights: performance improvements, new external functions, performance monitoring.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.2]] is available. Minor bugfix release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/11/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.1]] is available. Maintenance release.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/7/2019&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.9.0]] is available. Highlights: improved error feedback, improved Unicode support, regular expression library, memoization.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1/10/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.2]] is available. Highlights: improved error feedback, support [https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel Jupyter kernel], first [[Alloy|support for Alloy models]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/03/2018&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.8.0]] is available. Highlights: terminal colour support, performance improvements for displaying very large values, improved symmetry breaking and constraint solving.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5/10/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.1]] is available. Highlights: performance, non-deterministic assigned variables shown, Z improvements, export history to HTML.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11/7/2017&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.7.0]] is available. Highlights: improved [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], improved XML/CSV data import and export, RULE DSL language, many improvements in constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;20/10/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.1]] is available. Highlights: [[Generating_Documents_with_ProB_and_Latex |Latex document generation]], LET and IF-THEN-ELSE for expressions and predicates, XML logging, XML data import, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;22/4/2016&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.6.0]] is available. Highlights: [[Tutorial_Directed_Model_Checking|directed model checking]], [[Using_ProB_with_Z3|Z3 available as backend]], B line comments and unicode symbols, improved error messages, performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19/2/2015&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.5.0]] is available. Highlights: improved random enumeration, MACE/SEM style static symmetry reduction for deferred set elements, [[State_Space_Coverage_Analyses|MC/DC coverage]] analysis for guards and invariants, [[TLC|improved TLC interface]], bug fixes and improvements including but not limited to the constraint solver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;29/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.1]], a small bugfix-only release is available. For a list of new features in 1.4.0 see below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18/8/2014&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.4.0]] is available. Highlights: CLP(FD)-based constraint solver enabled by default, kernel can handle more operations symbolically, [[TLC|integration of the TLC model checker]], bug fixes and performance improvements.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4/3/2013&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.6]] is available. Highlights: improved constraint propagation for division, modulo, intervals, model checking progress bar, performance improvements, [[Using_ProB_with_KODKOD | improved Kodkod backend]] and use within REPL, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8/10/2012&#039;&#039;&#039;&lt;br /&gt;
[[Download|ProB 1.3.5]] is available. Highlights: support for external and recursive functions, optional Kodkod backend, [[TLA|TLA+ support]], performance improvements, pragmas, units inference, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30/03/2012&#039;&#039;&#039;&lt;br /&gt;
A first prototype of an online [[ProB_Logic_Calculator|ProB Logic Calculator]] is available.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;21/11/2011&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10/02/2011&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.3 and ProB for Rodin 2.3 is available. Highlights: improved performance, constrained-based deadlock checking, record detection, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;07/30/2010&#039;&#039;&#039;&lt;br /&gt;
ProB 1.3.2 is available. Highlights: improved performance, constraint solving over integers (enable in Advanced Preferences), much improved Z support, and many more.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12/07/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;03/20/2009&#039;&#039;&#039;&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>David Geleßus</name></author>
	</entry>
</feed>