<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://prob.hhu.de/w/index.php?action=history&amp;feed=atom&amp;title=ProB_History</id>
	<title>ProB History - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://prob.hhu.de/w/index.php?action=history&amp;feed=atom&amp;title=ProB_History"/>
	<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=ProB_History&amp;action=history"/>
	<updated>2026-04-03T21:30:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=ProB_History&amp;diff=4392&amp;oldid=prev</id>
		<title>Michael Leuschel: /* A small history of ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=ProB_History&amp;diff=4392&amp;oldid=prev"/>
		<updated>2020-04-29T09:11:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;A small history of ProB&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:11, 29 April 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ProB&amp;#039;s development started in 2001  with a first alpha release made in October 2003.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ProB&amp;#039;s development started in 2001  with a first alpha release made in October 2003.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It filled a gap in the B tooling landscape at the time, supporting the  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It filled a gap in the B tooling landscape at the time, supporting the  interactive and automatic validation of high-level specifications.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  interactive and automatic validation of high-level specifications.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Indeed, following classical B&#039;s correct-by-construction approach it is vital that the high-level specifications correctly capture the high-level requirements and functionality.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Indeed, following classical B&#039;s correct-by-construction approach it is vital that the high-level specifications correctly capture the high-level requirements&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;and functionality.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Only the B-Toolkit animator provided some very limited form of validation, and required the user to provide values for parameters and existentially quantified variables, the validity of which was checked by the BToolkit prover.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Only the B-Toolkit animator provided some very limited form of validation, and required the user to provide values for parameters and existentially quantified variables, the validity of which was checked by the BToolkit prover.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Michael Leuschel</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=ProB_History&amp;diff=4391&amp;oldid=prev</id>
		<title>Michael Leuschel: Created page with &quot;== A small history of ProB ==  ProB&#039;s development started in 2001  with a first alpha release made in October 2003. It filled a gap in the B tooling landscape at the time, sup...&quot;</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=ProB_History&amp;diff=4391&amp;oldid=prev"/>
		<updated>2020-04-29T09:10:57Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== A small history of ProB ==  ProB&amp;#039;s development started in 2001  with a first alpha release made in October 2003. It filled a gap in the B tooling landscape at the time, sup...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A small history of ProB ==&lt;br /&gt;
&lt;br /&gt;
ProB&amp;#039;s development started in 2001  with a first alpha release made in October 2003.&lt;br /&gt;
It filled a gap in the B tooling landscape at the time, supporting the &lt;br /&gt;
 interactive and automatic validation of high-level specifications.&lt;br /&gt;
Indeed, following classical B&amp;#039;s correct-by-construction approach it is vital that the high-level specifications correctly capture the high-level requirements&lt;br /&gt;
 and functionality.&lt;br /&gt;
&lt;br /&gt;
Only the B-Toolkit animator provided some very limited form of validation, and required the user to provide values for parameters and existentially quantified variables, the validity of which was checked by the BToolkit prover.&lt;br /&gt;
This approach was justified by the undecidability of the B language, but was tedious for the user and prevented automated validation.&lt;br /&gt;
In contrast, ProB allows fully automatic animation of specifications, i.e., values for constants, parameters are computed by ProB&amp;#039;s constraint solver rather than explicitly given by users.&lt;br /&gt;
&lt;br /&gt;
Using a variety of explicit-state and symbolic model checking approaches, ProB can be used to systematically check a specification for invariant violations~\cite{DBLP:journals/sttt/LeuschelB08,kringsleuschelsymbolicmc}.&lt;br /&gt;
Furthermore, ProB supports LTL model checking using a tableau-based algorithm as outlined in~\cite{Plagge:2010:SOS:1714440.1714445,10.1007/978-3-319-41591-8_14}.&lt;br /&gt;
Distributed explicit state model checking is supported via a C extension~\cite{distb}&lt;br /&gt;
and by using an integration with the language-independent model checker \textsc{LTSmin}~\cite{ltsminintegration}.&lt;br /&gt;
&lt;br /&gt;
Both model checking and animation are driven by a backend written in SICStus Prolog~\cite{carlsson2012sicstus},  implementing a solver for set-theory and predicate logic using Prolog co-routines and attributed variables  along with the finite domain constraint logic programming library~\cite{sicstusclpfd} of SICStus Prolog.&lt;br /&gt;
&lt;br /&gt;
Unknown to the ProB team at the time (around 2000), another team pursued similar ideas leading to the CLP-S solver \cite{Bouquet:TACAS02} and the BZTT tool \cite{Ambert:FATES02} based on it. This work also gave rise to a company (Lerios), which concentrated on model-based test-case generation and later ported the technology to an imperative programming language.&lt;br /&gt;
Unfortunately, the development of BZTT and CLP-S has been halted; the tool is no longer available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Model checking aside, the constraint-solving capabilities of  ProB can also be used for model finding, deadlock checking as well as test-case generation and drive many of the animation, visualisation and data validation tools that will be discussed below.&lt;/div&gt;</summary>
		<author><name>Michael Leuschel</name></author>
	</entry>
</feed>