<?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=External_Functions</id>
	<title>External Functions - 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=External_Functions"/>
	<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;action=history"/>
	<updated>2026-05-27T07:50:12Z</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=External_Functions&amp;diff=5946&amp;oldid=prev</id>
		<title>Jan Gruteser: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5946&amp;oldid=prev"/>
		<updated>2025-04-02T05:36:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 05:36, 2 April 2025&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-l24&quot;&gt;Line 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 24:&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;* &amp;lt;tt&amp;gt;LibraryCSV.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_CSV&amp;lt;/tt&amp;gt; external function to read in CSV files or strings and convert them to a B data structure&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;* &amp;lt;tt&amp;gt;LibraryCSV.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_CSV&amp;lt;/tt&amp;gt; external function to read in CSV files or strings and convert them to a B data structure&lt;/div&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;* &amp;lt;tt&amp;gt;LibrarySVG.def&amp;lt;/tt&amp;gt;: providing utility functions for VisB (&amp;lt;tt&amp;gt;svg_points&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;svg_axis&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibrarySVG.def&amp;lt;/tt&amp;gt;: providing utility functions for VisB (&amp;lt;tt&amp;gt;svg_points&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;svg_axis&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibraryXML.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_XML&amp;lt;/tt&amp;gt; external function to read in XML files or strings and convert them to a B data structure with strings and records. Also contains &amp;lt;tt&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;READ_JSON&lt;/del&gt;&amp;lt;/tt&amp;gt; to read JSON files and converting them to the same B format.&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;* &amp;lt;tt&amp;gt;LibraryXML.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_XML&amp;lt;/tt&amp;gt; external function to read in XML files or strings and convert them to a B data structure with strings and records. Also contains &amp;lt;tt&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;READ_JSON_AS_XML&amp;lt;/tt&amp;gt;/&amp;lt;tt&amp;gt;READ_JSON_FROM_STRING_AS_XML&lt;/ins&gt;&amp;lt;/tt&amp;gt; to read JSON files and converting them to the same B format.&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryBits.def&amp;lt;/tt&amp;gt;: contains bit-manipulation functions on integers (&amp;lt;tt&amp;gt;BNOT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BAND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BXOR&amp;lt;/tt&amp;gt;,...).&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;* &amp;lt;tt&amp;gt;LibraryBits.def&amp;lt;/tt&amp;gt;: contains bit-manipulation functions on integers (&amp;lt;tt&amp;gt;BNOT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BAND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BXOR&amp;lt;/tt&amp;gt;,...).&lt;/div&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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Gruteser</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5933&amp;oldid=prev</id>
		<title>Michael Leuschel: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5933&amp;oldid=prev"/>
		<updated>2025-03-28T07:15:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 07:15, 28 March 2025&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-l29&quot;&gt;Line 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&lt;/div&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;* &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;/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;* &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;/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;* &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 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;communication library either over regular sockets or ZMQ sockets.mch&amp;lt;/tt&amp;gt;: providing access to a JSON communication &lt;/del&gt;library either over regular sockets or ZMQ sockets. More information is available on [[JSON and Sockets]].&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;* &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 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RPC (Remote Procedure Call) &lt;/ins&gt;library either over regular sockets or ZMQ sockets. More information is available on [[JSON and Sockets]].&lt;/div&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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=External_Functions&amp;diff=5930&amp;oldid=prev</id>
		<title>Michael Leuschel: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5930&amp;oldid=prev"/>
		<updated>2025-03-28T07:08:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 07:08, 28 March 2025&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-l29&quot;&gt;Line 29:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&lt;/div&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;* &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;/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;* &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;/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;* &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 communication library either over regular sockets or ZMQ sockets.mch&amp;lt;/tt&amp;gt;: providing access to a JSON communication library either over regular sockets or ZMQ sockets.&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;* &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 communication library either over regular sockets or ZMQ sockets.mch&amp;lt;/tt&amp;gt;: providing access to a JSON communication library either over regular sockets or ZMQ sockets&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. More information is available on [[JSON and Sockets]]&lt;/ins&gt;.&lt;/div&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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=External_Functions&amp;diff=5929&amp;oldid=prev</id>
		<title>Michael Leuschel: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5929&amp;oldid=prev"/>
		<updated>2025-03-28T07:00:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 07:00, 28 March 2025&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-l28&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &lt;/div&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&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;* &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 communication library either over regular sockets or ZMQ sockets.&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&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;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* &amp;lt;tt&amp;gt;LibraryZMQ_RPC.def&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;LibraryZMQ_RPC&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.mch&amp;lt;/tt&amp;gt;: providing access to a JSON communication library either over regular sockets or ZMQ sockets&lt;/ins&gt;.mch&amp;lt;/tt&amp;gt;: providing access to a JSON communication library either over regular sockets or ZMQ sockets.&lt;/div&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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=External_Functions&amp;diff=5928&amp;oldid=prev</id>
		<title>Michael Leuschel: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5928&amp;oldid=prev"/>
		<updated>2025-03-28T06:57:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 06:57, 28 March 2025&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-l28&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &lt;/div&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&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;* &amp;lt;tt&amp;gt;SCCS.def&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&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 communication library either over regular sockets or ZMQ sockets.&lt;/ins&gt;&lt;/div&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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=External_Functions&amp;diff=5753&amp;oldid=prev</id>
		<title>Jan Gruteser: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5753&amp;oldid=prev"/>
		<updated>2024-05-11T06:37:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 06:37, 11 May 2024&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-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&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;To use a library machine you can use the &amp;lt;tt&amp;gt;SEES&amp;lt;/tt&amp;gt; mechanism:&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;To use a library machine you can use the &amp;lt;tt&amp;gt;SEES&amp;lt;/tt&amp;gt; mechanism:&lt;/div&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;  SEES LibraryMath&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;  SEES LibraryMath&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Note that for rules machines (.rmch) you have to use &amp;lt;tt&amp;gt;REFERENCES&amp;lt;/tt&amp;gt; instead.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&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;In general you can do the following with an external function, such as &amp;lt;tt&amp;gt;sin&amp;lt;/tt&amp;gt;, wrapped into a constant:&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;In general you can do the following with an external function, such as &amp;lt;tt&amp;gt;sin&amp;lt;/tt&amp;gt;, wrapped into a constant:&lt;/div&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;* apply the function: &amp;lt;tt&amp;gt;sin(x)&amp;lt;/tt&amp;gt;&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;* apply the function: &amp;lt;tt&amp;gt;sin(x)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Gruteser</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5752&amp;oldid=prev</id>
		<title>Jan Gruteser: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5752&amp;oldid=prev"/>
		<updated>2024-05-10T14:14:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 14:14, 10 May 2024&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-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&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;* &amp;lt;tt&amp;gt;LibraryMath.mch&amp;lt;/tt&amp;gt;: defining sin, cos, tan, sinx, cosx, tanx, logx, gcd, msb, random as well as access to all other Prolog built-in arithmetic functions.&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;* &amp;lt;tt&amp;gt;LibraryMath.mch&amp;lt;/tt&amp;gt;: defining sin, cos, tan, sinx, cosx, tanx, logx, gcd, msb, random as well as access to all other Prolog built-in arithmetic functions.&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryStrings.mch&amp;lt;/tt&amp;gt;: functions manipulating B STRING objects by providing &amp;lt;tt&amp;gt;length&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;append&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;split&amp;lt;/tt&amp;gt; and conversion functions &amp;lt;tt&amp;gt;chars&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;codes&amp;lt;/tt&amp;gt;.&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;* &amp;lt;tt&amp;gt;LibraryStrings.mch&amp;lt;/tt&amp;gt;: functions manipulating B STRING objects by providing &amp;lt;tt&amp;gt;length&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;append&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;split&amp;lt;/tt&amp;gt; and conversion functions &amp;lt;tt&amp;gt;chars&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;codes&amp;lt;/tt&amp;gt;.&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;* &amp;lt;tt&amp;gt;LibraryStrings.def&amp;lt;/tt&amp;gt; used by &amp;lt;tt&amp;gt;LibraryStrings.mch&amp;lt;/tt&amp;gt;: providing &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;directa &lt;/del&gt;access to various operators on strings (&amp;lt;tt&amp;gt;STRING_LENGTH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;STRING_APPEND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;STRING_SPLIT&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;INT_TO_STRING&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibraryStrings.def&amp;lt;/tt&amp;gt; used by &amp;lt;tt&amp;gt;LibraryStrings.mch&amp;lt;/tt&amp;gt;: providing &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;direct &lt;/ins&gt;access to various operators on strings (&amp;lt;tt&amp;gt;STRING_LENGTH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;STRING_APPEND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;STRING_SPLIT&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;INT_TO_STRING&amp;lt;/tt&amp;gt;,...)&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryFiles.mch&amp;lt;/tt&amp;gt;: various functions to obtain information about files and directories in the underlying file system&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;* &amp;lt;tt&amp;gt;LibraryFiles.mch&amp;lt;/tt&amp;gt;: various functions to obtain information about files and directories in the underlying file system&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryIO.def&amp;lt;/tt&amp;gt;: providing functions to write information to screen or file. Note: these external functions are polymorphic and as such cannot be defined as B constants: you have to use the DEFINITIONS provided in &amp;lt;tt&amp;gt;LibraryIO.def&amp;lt;/tt&amp;gt;.&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;* &amp;lt;tt&amp;gt;LibraryIO.def&amp;lt;/tt&amp;gt;: providing functions to write information to screen or file. Note: these external functions are polymorphic and as such cannot be defined as B constants: you have to use the DEFINITIONS provided in &amp;lt;tt&amp;gt;LibraryIO.def&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Gruteser</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5751&amp;oldid=prev</id>
		<title>Jan Gruteser: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5751&amp;oldid=prev"/>
		<updated>2024-05-10T11:42:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 11:42, 10 May 2024&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-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&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;* &amp;lt;tt&amp;gt;LibraryReals.def&amp;lt;/tt&amp;gt;: providing access to operators on [[Reals and Floats]] (&amp;lt;tt&amp;gt;RSIN&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RCOS&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RTAN&amp;lt;/tt&amp;gt;,  &amp;lt;tt&amp;gt;REXP&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ROUND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RLOG&amp;lt;/tt&amp;gt;,&amp;lt;tt&amp;gt;RSQRT&amp;lt;/tt&amp;gt;,...).&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;* &amp;lt;tt&amp;gt;LibraryReals.def&amp;lt;/tt&amp;gt;: providing access to operators on [[Reals and Floats]] (&amp;lt;tt&amp;gt;RSIN&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RCOS&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RTAN&amp;lt;/tt&amp;gt;,  &amp;lt;tt&amp;gt;REXP&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;ROUND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;RLOG&amp;lt;/tt&amp;gt;,&amp;lt;tt&amp;gt;RSQRT&amp;lt;/tt&amp;gt;,...).&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryRegex.def&amp;lt;/tt&amp;gt;: providing access to regular expression operators on strings (&amp;lt;tt&amp;gt;REGEX_MATCH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_REPLACE&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_SEARCH&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibraryRegex.def&amp;lt;/tt&amp;gt;: providing access to regular expression operators on strings (&amp;lt;tt&amp;gt;REGEX_MATCH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_REPLACE&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_SEARCH&amp;lt;/tt&amp;gt;,...)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;tt&amp;gt;LibraryCSV.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_CSV&amp;lt;/tt&amp;gt; external function to read in CSV files or strings and convert them to a B data structure&lt;/ins&gt;&lt;/div&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;* &amp;lt;tt&amp;gt;LibrarySVG.def&amp;lt;/tt&amp;gt;: providing utility functions for VisB (&amp;lt;tt&amp;gt;svg_points&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;svg_axis&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibrarySVG.def&amp;lt;/tt&amp;gt;: providing utility functions for VisB (&amp;lt;tt&amp;gt;svg_points&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;svg_axis&amp;lt;/tt&amp;gt;,...)&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryXML.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_XML&amp;lt;/tt&amp;gt; external function to read in XML files or strings and convert them to a B data structure with strings and records. Also contains &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt; to read JSON files and converting them to the same B format.&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;* &amp;lt;tt&amp;gt;LibraryXML.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_XML&amp;lt;/tt&amp;gt; external function to read in XML files or strings and convert them to a B data structure with strings and records. Also contains &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt; to read JSON files and converting them to the same B format.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Gruteser</name></author>
	</entry>
	<entry>
		<id>https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5664&amp;oldid=prev</id>
		<title>Michael Leuschel: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5664&amp;oldid=prev"/>
		<updated>2024-02-23T10:07:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 10:07, 23 February 2024&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-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&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;* &amp;lt;tt&amp;gt;LibraryRegex.def&amp;lt;/tt&amp;gt;: providing access to regular expression operators on strings (&amp;lt;tt&amp;gt;REGEX_MATCH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_REPLACE&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_SEARCH&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibraryRegex.def&amp;lt;/tt&amp;gt;: providing access to regular expression operators on strings (&amp;lt;tt&amp;gt;REGEX_MATCH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_REPLACE&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REGEX_SEARCH&amp;lt;/tt&amp;gt;,...)&lt;/div&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;* &amp;lt;tt&amp;gt;LibrarySVG.def&amp;lt;/tt&amp;gt;: providing utility functions for VisB (&amp;lt;tt&amp;gt;svg_points&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;svg_axis&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibrarySVG.def&amp;lt;/tt&amp;gt;: providing utility functions for VisB (&amp;lt;tt&amp;gt;svg_points&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;svg_axis&amp;lt;/tt&amp;gt;,...)&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;* &amp;lt;tt&amp;gt;LibraryXML.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_XML&amp;lt;/tt&amp;gt; external function to read in XML files or strings and convert them to a B data structure with strings and records.  &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;* &amp;lt;tt&amp;gt;LibraryXML.def&amp;lt;/tt&amp;gt;: contains a &amp;lt;tt&amp;gt;READ_XML&amp;lt;/tt&amp;gt; external function to read in XML files or strings and convert them to a B data structure with strings and records&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Also contains &amp;lt;tt&amp;gt;READ_JSON&amp;lt;/tt&amp;gt; to read JSON files and converting them to the same B format&lt;/ins&gt;.&lt;/div&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;* &amp;lt;tt&amp;gt;LibraryBits.def&amp;lt;/tt&amp;gt;: contains bit-manipulation functions on integers (&amp;lt;tt&amp;gt;BNOT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BAND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BXOR&amp;lt;/tt&amp;gt;,...).&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;* &amp;lt;tt&amp;gt;LibraryBits.def&amp;lt;/tt&amp;gt;: contains bit-manipulation functions on integers (&amp;lt;tt&amp;gt;BNOT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BAND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BXOR&amp;lt;/tt&amp;gt;,...).&lt;/div&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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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=External_Functions&amp;diff=5542&amp;oldid=prev</id>
		<title>Jan Gruteser: /* Standard Libraries provided by ProB */</title>
		<link rel="alternate" type="text/html" href="https://prob.hhu.de/w/index.php?title=External_Functions&amp;diff=5542&amp;oldid=prev"/>
		<updated>2023-12-29T17:30:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Standard Libraries provided by 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 17:30, 29 December 2023&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-l26&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&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;* &amp;lt;tt&amp;gt;LibraryBits.def&amp;lt;/tt&amp;gt;: contains bit-manipulation functions on integers (&amp;lt;tt&amp;gt;BNOT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BAND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BXOR&amp;lt;/tt&amp;gt;,...).&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;* &amp;lt;tt&amp;gt;LibraryBits.def&amp;lt;/tt&amp;gt;: contains bit-manipulation functions on integers (&amp;lt;tt&amp;gt;BNOT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BAND&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BXOR&amp;lt;/tt&amp;gt;,...).&lt;/div&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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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;* &amp;lt;tt&amp;gt;SORT.def&amp;lt;/tt&amp;gt;: providing sorting related functions (&amp;lt;tt&amp;gt;SORT&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;SQUASH&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;REPLACE&amp;lt;/tt&amp;gt;).  &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;* &amp;lt;tt&amp;gt;SCCS.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ef&lt;/del&gt;&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&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;* &amp;lt;tt&amp;gt;SCCS.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;def&lt;/ins&gt;&amp;lt;/tt&amp;gt;: providing access to &amp;lt;tt&amp;gt;SCCS&amp;lt;/tt&amp;gt; to compute the strongly connected components of a relation and &amp;lt;tt&amp;gt;CLOSURE1&amp;lt;/tt&amp;gt; an alternative algorithm for compting the transitive closure of a relation.&lt;/div&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&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;Since version 1.5 the standard library is shipped with ProB  and references to machines and DEFINITION-files in the standard library are resolved automatically when referenced (see [[PROBPATH]] for information about how to customize the lookup path).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Gruteser</name></author>
	</entry>
</feed>