<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TLA+ &#124; The way to specify</title>
	<atom:link href="http://www.tlaplus.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tlaplus.net</link>
	<description>The TLA+ and PlusCal Resource</description>
	<lastBuildDate>Tue, 25 Sep 2012 12:33:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>TLA+ Workshop at FM 2012</title>
		<link>http://www.tlaplus.net/posts/2012/03/tla-workshop-at-fm-2012/</link>
		<comments>http://www.tlaplus.net/posts/2012/03/tla-workshop-at-fm-2012/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 17:32:18 +0000</pubDate>
		<dc:creator>merz</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=640</guid>
		<description><![CDATA[International Workshop on the TLA+ Method and Tools http://tla2012.loria.fr/ August 27, 2012 Paris, France (co-located with FM 2012) The TLA+ workshop is a forum for practitioners and researchers interested in the use and further development of the TLA+ specification language and its associated tools. Presentations of academic or industrial developments based on TLA+ or PlusCal, [...]]]></description>
			<content:encoded><![CDATA[<p>              International Workshop on the TLA+ Method and Tools</p>
<p>                            <a href="http://tla2012.loria.fr/" title="http://tla2012.loria.fr/" target="_blank">http://tla2012.loria.fr/</a></p>
<p>                                August 27, 2012</p>
<p>                     Paris, France (co-located with FM 2012)</p>
<p>The TLA+ workshop is a forum for practitioners and researchers interested in the use and further development of the TLA+ specification language and its associated tools. Presentations of academic or industrial developments based on TLA+ or PlusCal, of extensions of the existing tools or of the innovative use of these tools are of particular interest. Contributions pointing out shortcomings of the existing tools and suggesting further improvements are also welcome. </p>
<p>Typical contributions may describe case studies concerning the development of hardware and software systems, including embedded systems, security-critical systems, or parallel and distributed algorithms. We are also interested in reports and novel ideas concerning the integration of TLA+ with other system engineering techniques, in reports on using TLA+ in teaching, and in any other topic clearly related to the TLA+ language or tools. Presentation of ongoing work is specifically encouraged. The workshop is intended to be a quite informal meeting of the TLA+ community, with sufficient time left for discussions.</p>
<p>Two categories of submissions to the TLA+ workshop are sought:</p>
<ul>
<li>Regular paper submissions will be reviewed by the program committee according to their novelty and the interest to the workshop, based on the first 15 pages of the contribution. Any remaining material can be included in an appendix that will be read at the discretion of the referees.
<li>Presentation-only submissions should include an abstract of 1 or 2 pages that allows the program committee to assess the novelty and the interest of the contribution to the workshop.
</ul>
<p>All submissions will be handled through the EasyChair system. There will be no formal workshop proceedings; accepted papers and presentations will be posted on the Web site of the workshop and will be made available to attendees of FM 2012.</p>
<p>Workshop participants will be required to register via the FM 2012 Web site.</p>
<p><strong>Important dates</strong></p>
<p>May 13, 2012      submission deadline<br />
June 17, 2012     notification<br />
July  8, 2012     final version<br />
August 27, 2012   workshop</p>
<p><strong>Program committee</strong></p>
<ul>
<li>Damien Doligez, INRIA, Paris, France
<li>John Douceur, Microsoft Research, Redmond, U.S.A.
<li>Leslie Lamport, Microsoft Research, Mountain View, U.S.A. (co-chair)
<li>Stephan Merz, INRIA, Nancy, France (co-chair)
<li>Chris Newcombe, Amazon, Seattle, U.S.A.
<li>Werner Stephan, DFKI, Saarbrücken, Germany
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2012/03/tla-workshop-at-fm-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toolbox Version 1.3.1 Released</title>
		<link>http://www.tlaplus.net/posts/2011/04/toolbox-version-1-3-1-released/</link>
		<comments>http://www.tlaplus.net/posts/2011/04/toolbox-version-1-3-1-released/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 21:53:31 +0000</pubDate>
		<dc:creator>Leslie Lamport</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[PlusCal]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=608</guid>
		<description><![CDATA[The major change is PlusCal Version 1.5, which allows specification of an algorithm&#8217;s fairness properties. There have also been a number of minor bug fixes.]]></description>
			<content:encoded><![CDATA[<p>The major change is PlusCal Version 1.5, which allows specification of an algorithm&#8217;s fairness properties. There have also been a number of minor bug fixes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2011/04/toolbox-version-1-3-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TLA Toolbox 1.2.1 released</title>
		<link>http://www.tlaplus.net/posts/2011/04/tla-toolbox-1-2-1-released/</link>
		<comments>http://www.tlaplus.net/posts/2011/04/tla-toolbox-1-2-1-released/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 20:55:03 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[TLA Toolbox]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=602</guid>
		<description><![CDATA[After the initial release of TLA Toolbox followed by a several maintenance releases a version containing a new tool has been released. TLA Toolbox now supports TLAPS, the TLA Proof Checker. Check the Tools Section]]></description>
			<content:encoded><![CDATA[<p>After the initial release of TLA Toolbox followed by a several maintenance releases a version containing a new tool has been released. TLA Toolbox now supports TLAPS, the TLA Proof Checker. Check the <a href="http://www.tlaplus.net/tools/tla-toolbox/">Tools Section</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2011/04/tla-toolbox-1-2-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TLA Toolbox Released</title>
		<link>http://www.tlaplus.net/posts/2010/02/tla-toolbox-released/</link>
		<comments>http://www.tlaplus.net/posts/2010/02/tla-toolbox-released/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:36:05 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[TLA+]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[graphical user interface]]></category>
		<category><![CDATA[model checker]]></category>
		<category><![CDATA[model checking]]></category>
		<category><![CDATA[syntax analysis]]></category>
		<category><![CDATA[tlc]]></category>
		<category><![CDATA[toolbox]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=551</guid>
		<description><![CDATA[There are various tools available for the TLA+ specification language and PlusCal algorithm language, as described in the TLA Tools section in more detail. These command-line tools are now integrated in a full-featured IDE, called the TLA Toolbox, for writing and debugging TLA+ specifications and PlusCal algorithms. It combines editors for specifications and TLC models [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2009/08/toolbox-screenshot-350x200.png" style="float:right;" width="350" height="200" /><br />
There are various tools available for the TLA+ specification language and PlusCal algorithm language, as described in the <a href="/tools/tla-tools">TLA Tools section</a> in more detail. These command-line tools are now integrated in a full-featured IDE, called the <b>TLA Toolbox</b>, for writing and debugging TLA+ specifications and PlusCal algorithms.  It combines editors for specifications and TLC models with already existing TLA+ tools for syntax analysis, PlusCal translation, model checking, and pretty-printing  in one application. It includes the console-based TLA+ Tools and enables the use of their whole functionality through a rich graphical user interface.<br />
<span id="more-551"></span></p>
<p>The IDE provides the following functionality with a simple graphical<br />
interface:</p>
<ul>
<li>Managing specifications</li>
<li>A TLA+ specification editor with features like:
<ul>
<li>SANY integration</li>
<li>Syntax Highlighting</li>
<li>Basic content assist</li>
<li>Error markers</li>
</ul>
</li>
<li>PlusCal translation</li>
<li>Displaying a pretty-printed PDF version using TLATeX</li>
<li>The TLC Model Checker, with:
<ul>
<li>A simple interface for managing models</li>
<li>A rich model editor</li>
<li>An extended TLC result display</li>
<li>A cool trace explorer</li>
</ul>
<li>The TLAPS proof system, with features for:
<ul>
<li>Viewing and editing hierarchical proofs
<li>Running the prover (soon to be released)
<li>Displaying the status of proofs (soon to be released)
</ul>
</li>
</ul>
<p>See the <a href="/tools/tla-toolbox/">TLA Toolbox</a> page for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2010/02/tla-toolbox-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web Site Structure</title>
		<link>http://www.tlaplus.net/posts/2009/12/web-site-structure/</link>
		<comments>http://www.tlaplus.net/posts/2009/12/web-site-structure/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:01:19 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Unspecified]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[bugzilla]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[forum]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[structure]]></category>
		<category><![CDATA[TLA+]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=347</guid>
		<description><![CDATA[Introduction The look and feel of the web page is often responsible for its popularity. In the same time, the Web 2.0 hype defined some new technologies and standards, which must be offered in order to gain user&#8217;s acceptance. The pre-2.0 communication channels like emails, discussion forums and CMSs has to be extended with RSS [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tlaplus.net/wp-content/uploads/2009/12/blueprint4-150x150.jpg" alt="blueprint" title="blueprint" width="150" height="150" style="margin: 10px; float: left;"  /></p>
<h3>Introduction</h3>
<p>The look and feel of the web page is often responsible for its popularity. In the same time, the Web 2.0 hype defined some new technologies and standards, which must be offered in order to gain user&#8217;s acceptance. The pre-2.0 communication channels like emails, discussion forums and CMSs has to be extended with RSS feeds, wiki-like collaborative editing, support for micro-blogging (e.G. twitter) and others. In addition, the lessons learned from open-source projects shows the importance of the ability for arbitary users to give feedback about the software, using a simple bugtracking system with open access.</p>
<p>This page aims to deliver all of it and support the new and growing community of TLA+ and PlusCal. <span id="more-347"></span> In doing so, we started with the <a href="http://www.wordpress.org/">popular blogging system</a> and use it as a basic platform, extending it with additional functionality using its modular architecure. Since the authors of the blog posts and static content want to foster the communication with the <a href="http://bbpress.tlaplus.net/">community</a>, the <a href="http://www.bbpress.org/">discussion forum</a> software has been adopted. In order to ease the usage of these two systems, Single-Sign-On has been implemented. Apart from tutorials and discussions, it is of utmost importance to receive direct feedback from the users (like bugs or enhancement proposals). For this purpose, the <a href="http://bugzilla.tlaplus.net/">Bugzilla</a> bugtracking system has been installed.</p>
<h3>Static content</h3>
<p>Every web page provides some static content. The content of this page is separated in two sections: <a href="/learning/">Learning</a> and <a href="/resources/">Resources</a>. If you are new to TLA+ and PlusCal have a look into those sections to find the basic materials. </p>
<h3>Blog</h3>
<p>In order to ease the lookup for updated topics, the page has a blog section. It is used for announcements of new content inside of the static part, new releases of software and so on. Please note, that all pages supports the RSS aggregation, but it makes most sense to subscribe the blog.</p>
<h3>Discussion Forum</h3>
<p>In order to improve the possibility of giving feedback and to foster the discussions about TLA+, PlusCal and the tools, the new <a href="http://bbpress.tlaplus.net /"><strong>Discussion Forum</strong></a> has been installed. The popular system bbPress should be good enogh for this purposes. From now on, you can <a href="http://bbpress.tlaplus.net/register.php"><strong>create an account</strong></a> and discuss with the community. In order to log-in, click on the small red arrow in the left-upper corner of the page. There are also some internal discussion forums, which are visible if you are logged in, and has special permissions. If you think that you miss some of them &#8211; let me know.</p>
<h3>Wiki Question</h3>
<p>It has been proposed several times to install the Wiki-System. Since there is no use case for collaborative editing in wiki, I try to keep the number of systems as low as possible. If there is a real need for the wiki &#8211; let me know.</p>
<h3>Feedback using Bugzilla</h3>
<p>The preparation of the TLA+ Toolbox release is moving forward, so the main feedback tool for bugs and enchancements has been installed. For this purpose, <a href="http://bugzilla.tlaplus.net/">Bugzilla Bug Tracking System</a> will be used. Anyone can register by creating an account and file bugs using the bug-tracking system. In the current stage the Bugzilla account is independent from the forum account, but this will change eventually.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2009/12/web-site-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coming soon: TLA+ Toolbox</title>
		<link>http://www.tlaplus.net/posts/2009/08/coming-soon-tla-toolbox/</link>
		<comments>http://www.tlaplus.net/posts/2009/08/coming-soon-tla-toolbox/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 01:07:17 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[TLA+]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[toolbox]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=302</guid>
		<description><![CDATA[There are various tools available for the TLA+ specification language and PlusCal algorithm language, as described in the Tools section in more detail. An additional tool is coming soon: the TLA+ Toolbox. In order to enhance the user experience with the tools and simplify the access to the languages some improvements are being developed in [...]]]></description>
			<content:encoded><![CDATA[<p>There are various tools available for the TLA+ specification language and PlusCal algorithm language, as described in the <a href="/tools/">Tools section</a> in more detail. An additional tool is coming soon: the TLA+ Toolbox.<span id="more-302"></span></p>
<p>In order to enhance the user experience with the tools and simplify the access to the languages some improvements are being developed in the scope of <a href="/posts/2009/08/tools-and-methods-for-formal-specs-and-for-proofs/">the project</a> run by Microsoft Research and INRIA. Along with the focus on the proof aspect of TLA+, the development of a complete Integrated Development Environment (IDE) for writing and debugging of specifications has been identified as a project goal. The IDE unifies the editors for specifications and models with already existing TLA+ tools for syntax analyze, PlusCal translation and model checking in one application. It includes the console-based TLA+ Tools and enables the use of their whole functionality via rich graphical user interface.</p>
<p>The IDE is currently being finalized and will be available soon. It will include:</p>
<ul>
<li>Simple interface for managing specifications</li>
<li>Integrated TLA+ specification editor with features like:
<ul>
<li>SANY integration</li>
<li>Syntax Highlighting</li>
<li>Basic content assist</li>
<li>Error marker support</li>
<li>and others</li>
</ul>
</li>
<li>PlusCal Translator integration</li>
<li>TLC Model Checker integration
<ul>
<li>Simple interface for managing models</li>
<li>Rich model editor</li>
<li>Extended TLC result display</li>
<li>Trace Explorer</li>
<li>and others&#8230;</li>
</ul>
</li>
</ul>
<p><strong>Stay tuned for the TLA+ Toolbox release&#8230;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2009/08/coming-soon-tla-toolbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tools and Methodologies for Formal Specifications and for Proofs</title>
		<link>http://www.tlaplus.net/posts/2009/08/tools-and-methods-for-formal-specs-and-for-proofs/</link>
		<comments>http://www.tlaplus.net/posts/2009/08/tools-and-methods-for-formal-specs-and-for-proofs/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 08:08:17 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Formal Specification]]></category>
		<category><![CDATA[isabelle]]></category>
		<category><![CDATA[Methodologies]]></category>
		<category><![CDATA[proof]]></category>
		<category><![CDATA[TLA+]]></category>
		<category><![CDATA[tla+ tools]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[zenon]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=283</guid>
		<description><![CDATA[There are a number of existing tools for working on TLA+ specifications, the most important of which is the TLC model-checker. Although the proof side of TLA+ is not well-developed yet, with no proof tools and an incomplete definition of the proof language, TLA+ has already proved its worth in significant projects in hardware design, [...]]]></description>
			<content:encoded><![CDATA[<p>There are a number of existing tools for working on TLA+ specifications, the most important of which is the TLC model-checker. Although the proof side of TLA+ is not well-developed yet, with no proof tools and an incomplete definition of the proof language, TLA+ has already proved its worth in <a href="/community/projects/">significant projects</a> in hardware design, protocols and software.</p>
<p>In <a href="http://www.msr-inria.inria.fr/Projects/tools-for-formal-specs/">this project</a>, we are working on turning TLA+ into a complete solution for writing, debugging, and proving specifications. More precisely, we are concentrating on the proof aspect<span id="more-283"></span>:</p>
<ul>
<li>refining the proof language</li>
<li>making a development environment for TLA+ specifications and proofs</li>
<li>developing and adapting automatic tools for helping to prove TLA+ theorems (<a href="http://focal.inria.fr/zenon/">Zenon</a>,  <a href="http://harvey.loria.fr/">haRVey-SAT</a>)</li>
<li>translating TLA+ proofs into a machine-checkable format for verification by an independent checker (<a href="http://isabelle.in.tum.de/">Isabelle</a>)</li>
</ul>
<p>We will validate and enhance our tools by finding examples of real-world projects where formal specifications bring real improvements over other methodologies. Feedback from these examples will help us improve the proof language and the tools and develop methods and &#8220;design patterns&#8221; for using TLA+.</p>
<h3>Team and former Members</h3>
<ul>
<li><a href="http://research.microsoft.com/users/lamport/">Leslie Lamport</a> (Microsoft Research)</li>
<li><a href="http://www.loria.fr/~merz/">Stephan Merz</a> (LORIA)</li>
<li><a href="http://gallium.inria.fr/~doligez/">Damien Doligez</a> (INRIA)</li>
<li>Daniel Ricketts (INRIA)</li>
<li><a href="http://www.denis.cousineau.eu/">Denis Cousineau</a> (MSR-INRIA)</li>
<li><a href="http://www.lix.polytechnique.fr/~kaustuv/">Kaustuv Chaudhuri</a> (MSR-INRIA)</li>
<li><a href="http://simon.zambrovski.org/">Simon Zambrovski</a> (Microsoft Research)</li>
</ul>
<h3>Status</h3>
<p>Project is in progress&#8230;</p>
<h3>Project Homepage</h3>
<p><a href="http://www.msr-inria.inria.fr/Projects/tools-for-formal-specs/">http://www.msr-inria.inria.fr/Projects/tools-for-formal-specs/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2009/08/tools-and-methods-for-formal-specs-and-for-proofs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Command Line Switches</title>
		<link>http://www.tlaplus.net/posts/2009/08/command-line-switches/</link>
		<comments>http://www.tlaplus.net/posts/2009/08/command-line-switches/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 08:11:25 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[argument]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[PlusCal]]></category>
		<category><![CDATA[sany]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[tlatex]]></category>
		<category><![CDATA[tlc]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=116</guid>
		<description><![CDATA[This tutorial describes the command line switches accepted by the console-based TLA+ Tools: SANY, TLC, and the PlusCal Translator. Most users will run the tools from the Toolbox, in which case the switches for SANY and TLC are irrelevant. When running the Toolbox, command line switches for the PlusCal translator can be provided in a [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin: 10px;" title="Command Line Switches" src="/wp-content/uploads/2009/08/switch-150x150.jpg" alt="Command Line Switches" width="100" height="100" /><br />
This tutorial describes the command line switches accepted by the console-based TLA+ Tools: SANY, TLC, and the PlusCal Translator.  Most users will run the tools from the Toolbox, in which case the switches for SANY and TLC are irrelevant.  When running the Toolbox, command line switches for the PlusCal translator can be provided in a specification&#8217;s <code>Preferences</code> menu.  However, starting with Version 1.5 of the translator, the most useful options can be specified in the module containing the algorithm.  (See the language manual.)</p>
<p>The command line switches are detected, by the fact that they begin with a &#8216;-&#8217; character. Once the first command line element that is not a switch is encountered, the rest are presumed to be file names.<span id="more-116"></span></p>
<h3>SANY, the Syntax Analyzer</h3>
<pre class="brush: bash; title: ; notranslate">
java tla2sany.SANY [-S] [-L] [-D] [-STAT] FILES
</pre>
<p>where <code>FILES</code> is a list of modules separated by spaces and</p>
<ul>
<li><code>-S</code>: disable semantic analysis</li>
<li><code>-L</code>: disable level checking</li>
<li><code>-D</code>: enable debugging</li>
<li><code>-STAT</code>: print statistics</li>
</ul>
<p>The switches are useful for finding errors in SANY ony and are not providing particular helpful features for the user.</p>
<h3>TLC, the Model Checker</h3>
<p>The model checker (TLC) provides the following functionalities:</p>
<ul>
<li>Model checking of TLA+ specs</li>
<li>Simulation of TLA+ specs</li>
</ul>
<p>The program can be executed by typing the following to the console</p>
<pre class="brush: bash; title: ; notranslate">
java tlc2.TLC [GENERAL-SWITCHES] [MODE-SWITCHES] SPEC
</pre>
<p>where <code>SPEC</code> is the name of the specification&#8217;s root module (the .tla extension can be omitted) and the optional <code>GENERAL-SWITCHES</code> are:</p>
<ul>
<li><code>-cleanup</code>: clean up the states directory</li>
<li><code>-config file</code>: provide the config file. Defaults to .cfg if not provided.</li>
<li><code>-continue</code>: continue running even when invariant is violated. Defaults to stop at the first violation if not specified.</li>
<li><code>-coverage minutes</code>: collect coverage information on the spec, print out the information every minutes. Defaults to no coverage if not specified.</li>
<li><code>-deadlock</code>: do not check for deadlock. Defaults to checking deadlock if not specified.</li>
<li><code>-difftrace</code>: when printing trace, show only the differences between successive states. Defaults to printing full state descriptions if not specified.</li>
<li><code>-dump file</code>: dump all the states into file</li>
<li><code>-fp num</code>: use the num&#8217;th irreducible polynomial from the list stored in the class FP64.</li>
<li><code>-gzip</code>: control if gzip is applied to value input/output stream. Defaults to use gzip.</li>
<li><code>-metadir path</code>: store metadata in the directory at path. Defaults to specdir/states if not specified.</li>
<li><code>-nowarning</code>: disable all the warnings. Defaults to report warnings if not specified</li>
<li><code>-recover path</code>: recover from the checkpoint at path. Defaults to scratch run if not specified.</li>
<li><code>-terse</code>: do not expand values in Print statement. Defaults to expand value if not specified.</li>
<li><code>-workers num</code>: the number of TLC worker threads. Defaults to 1.</li>
</ul>
<p>By default TLC starts in the model checking mode using breadth-first approach for state space exploration. This can be changed using the <code>MODE-SWITCHES</code>. In contrast to the <code>GENERAL-SWITCHES</code> these can be used if applied in certain combinations only:</p>
<pre class="brush: bash; title: ; notranslate">
{[-dfid num][ -view]|-simulate[ -depth num][ -aril num][ -seed num]}
</pre>
<ul>
<li><code>-modelcheck</code>: run model checking and explore the state space in breadth first manner. This is a default mode.</li>
<li><code>-dfid num</code>: run model checking and use depth-first iterative deepening with initial depth num</li>
<li><code>-view</code>: apply <code>VIEW</code> (if provided) when printing out states. Applicable only in model checking mode.</li>
<li><code>-simulate</code>: run simulation</li>
<li><code>-depth num</code>: specify the depth of random simulation. Defaults to 100 if not specified, relevant for simulation mode only.</li>
<li><code>-seed num</code>: provide the seed for random simulation. Defaults to a random seed if not specified, relevant for simulation mode only.</li>
<li><code>-aril num</code>: adjust the seed for random simulation. Defaults to 0 if not specified, relevant for simulation mode only.</li>
</ul>
<h2>PlusCal, the Translator</h2>
<p>The PlusCal translator translates a PlusCal algorithm into a TLA+ specification. The translator is called by typing</p>
<pre class="brush: bash; title: ; notranslate">
java pcal.trans [SWITCHES] SPEC
</pre>
<p>where SPEC is a TLA+ file (the extension .tla need not be typed)<br />
containing the algorithm. See the PlusCal manual for an explanation of<br />
what the TLA+ file must contain. The possible options are</p>
<ul>
<li><code>-help</code>: Prints out the usage instead of running the translator.</li>
<li><code>-wf</code>: Conjoin to formula <code>Spec</code> weak fairness of each process&#8217;s next-state action</li>
<li><code>-sf</code>: Conjoin to formula <code>Spec</code> strong fairness of each process&#8217;s next-state action</li>
<li><code>-wfNext</code>: Conjoin to formula <code>Spec</code> weak fairness of the entire next-state action</li>
<li><code>-nof</code>: Conjoin no fairness formula to <code>Spec</code>. This is the default, except when the <code>-termination</code> option is chosen.</li>
<li><code>-termination</code>: Add to the .cfg file the command <code>PROPERTY Termination</code> With this option, the default fairness option becomes <code>-wf</code>.</li>
<li><code>-nocfg</code>: Suppress writing of the .cfg file.</li>
<li><code>-label</code>: Tells the translator to add missing labels. This is the default only for a uniprocess algorithm in which the user has typed no labels.</li>
<li><code>-reportLabels</code>: True if the translator should print the names and locations of all labels it adds. Like <code>-label</code>, it tells the translator to add missing labels.</li>
<li><code>-labelRoot name</code>: If the translator adds missing labels, it names them name1, name2, etc. The default value is &#8220;Lbl_&#8221;.</li>
<li><code>-unixEOL</code>: Forces the use of Unix end-of-line convention, regardless of the system&#8217;s default. Without this, when run on Windows, the files it writes seem to have a &#8220;^M&#8221; at the end of every line when viewed with Emacs.</li>
<li><code>-debug</code>: This is useful only for maintainers of the program and has no effect on normal execution.</li>
<li><code>-reportLabels</code>: True if the translator should print the names and locations of all labels it adds.  Like -label, it tells the translator to add missing labels.</li>
<li><code>-lineWidth</code>: The translation tries to perform the translation so lines have this maximum width.  (It will often fail.)  Default is 78, minimum value is 60.</li>
<li><code>-version</code>: The version of PlusCal for which this algorithm is written.  If the language is ever changed to make algorithms written for earlier versions no longer legal, then the translator should do the appropriate thing when the earlier version number is specified.</li>
</ul>
<p>Starting with Version 1.5, the following options no longer work.  They can be used only if the <code>-version 1.4</code> option is also used.  Moreover, the <code>-writeAST</code> option does not work from the Toolbox.  If there is any demand, these options may be made to work again in later versions.</p>
<ul>
<li><code>-spec name</code>: Uses TLC and the TLA+ specification name.tla to do the translation. It copies the files name.tla and name.cfg from the directory containing the translator&#8217;s Java source files to the current directory; it writes in the current director the file AST.tla that defines `fairness&#8217; to equal the fairness option and `ast&#8217; to equal the the AST data structure representing the algorithm; and it runs TLC on name.tla to produce the translation.</li>
<li><code>-myspec name</code>: Like <code>-spec</code>, except it finds the files names.tla and names.cfg in the current directory, instead of writing them there.</li>
<li><code>-spec2 name</code>: Like <code>-spec</code>, except it uses TLC2 insead of the old version of TLC (aka TLC1).</li>
<li><code>-myspec2 name</code>: Like <code>-myspec</code>, except it uses TLC2 instead of TLC (aka TLC1).</li>
<li><code>-writeAST</code>: Writes the AST file as in the <code>-spec</code> option, but does not perform the translation.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2009/08/command-line-switches/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to install TLA+ Tools</title>
		<link>http://www.tlaplus.net/posts/2009/08/how-to-install-tla-tools/</link>
		<comments>http://www.tlaplus.net/posts/2009/08/how-to-install-tla-tools/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 07:48:46 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[instruction]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tla+ tools]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=113</guid>
		<description><![CDATA[This tutorial provides a description of the installation procedure of the console-based version of TLA+ Tools. Separate directions for completing the installation on Windows and on Unix are provided. Please download the latest copy of the TLA+ Tools in the Tools Section. Also make sure that the Java Runtime Environment (at least version 1.4) is [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin: 10px;" title="How to install TLA+ Tools" src="/wp-content/uploads/2009/08/wrench-150x150.jpg" alt="How to install TLA+ Tools" width="100" height="100" /><br />
This tutorial provides a description of the installation procedure of the console-based version of TLA+ Tools. Separate directions for completing the installation on Windows and on Unix are provided.<span id="more-113"></span><br />
Please download the latest copy of the TLA+ Tools in the <a href="/tools/tla-tools">Tools Section</a>. Also make sure that the Java Runtime Environment (at least version 1.4) is installed on your machine. You can download a version from the <a href="http://java.sun.com/javase/downloads/index.jsp">homepage of Sun Microsystems</a>.</p>
<h3>Installation on Windows</h3>
<p>Choose (or create) a folder into which you want to put the tools and unzip the downloaded file into it. Suppose your folder is <code>c:\user\myfolder</code>, the sub folder named <code>tla</code> will be created in it, which contains the tools. Add <code>c:\user\myfolder\tla</code> to your CLASSPATH environment variable. How you do that depends on what version of Windows you&#8217;re using:</p>
<h4>Non-Ancient Versions of Windows</h4>
<p>Open <em>Start &gt; Settings &gt; ControlPanel</em>. On the <em>Control Panel</em>, open <em>System</em>, click on <em>Advanced</em> tab and open the <em>Environment Variables</em>, then look for the <code>CLASSPATH</code> variable among user or system variables.  If it exists, append <code>;c:\user\myfolder\tla</code> to the end of its value. If not, create a new <code>CLASSPATH</code> variable whose value is <code>c:\user\myfolder\tla</code>.</p>
<h4>Windows 95 (and MS-DOS)</h4>
<p>Modify your AUTOEXEC.BAT file. If there is a command<br />
<code>set CLASSPATH = c:\foo\bar;d:\myjava\files</code><br />
then change it to<br />
<code>set CLASSPATH = c:\foo\bar;d:\myjava\files;c:\user\myfolder\tla</code><br />
If there is no such command in the file, then add<br />
<code>set CLASSPATH = c:\user\myfolder\tla</code><br />
to your AUTOEXEC.BAT file.</p>
<h3>Installation on UNIX</h3>
<p>Choose (or create) a directory into which you want to put the tools and unzip the downloaded file into that directory. Suppose that your directory is <code>/udir/user/mydir</code>, the sub directory named <code>tla</code> will be created in it, which contains the tools. Add <code>/udir/user/mydir/tla</code> to the <code>CLASSPATH</code> environment variable. Assuming you&#8217;re running the C-shell or some derivative, you do this by typing<br />
<code>setenv CLASSPATH /udir/user/mydir/tla</code><br />
However, you&#8217;ll probably want to have the <code>CLASSPATH</code> variable set automatically when you login.  To do this, your <code>.login</code> or <code>.csh</code> file must contain a command to set that variable.  If a command<br />
<code>setenv CLASSPATH ...</code><br />
already exists in your <code>.login</code> or <code>.csh</code> file, just add the command<br />
<code>setenv CLASSPATH $CLASSPATH":/udir/user/mydir/tla"</code><br />
after it. Otherwise, just add the command<br />
<code>setenv CLASSPATH /udir/user/mydir/tla</code></p>
<h3>Validation of the installation</h3>
<p>In order to validate if the TLA+ tools has been successfully installed, first create a file <code>test.tla</code> and paste the following content into it:</p>
<pre class="brush: bash; title: ; notranslate">
---- MODULE test ----
====
</pre>
<p>Then open the console (<em>Start</em> &gt; <em>Run</em> &gt; <code>cmd</code> on Windows) in the directory, the file is located in and type: <code>java tla2sany.SANY test</code>. If you did everything right, you should see:</p>
<pre class="brush: bash; title: ; notranslate">
****** SANY2 Version .91 created 10 April 2008
Parsing file test.tla
Semantic processing of module test
</pre>
<p>If you see</p>
<pre class="brush: bash; title: ; notranslate">
Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: tla2sany/SANY
Caused by: java.lang.ClassNotFoundException: tla2sany.SANY
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: tla2sany.SANY.  Program will exit.
</pre>
<p>you probably misspelled the <code>CLASSPATH</code>. If you see something like:</p>
<pre class="brush: bash; title: ; notranslate">
'java' is not recognized as an internal or external command,
operable program or batch file.
</pre>
<p>you are missing the JRE.</p>
<h3>Running from a script</h3>
<p>In some scenarios, setting up the global CLASSPATH variable is not desirable. In this case it is possible to create scripts for each tool which set the CLASSPATH only for the execution. Here is an example script for calling SANY on Windows:</p>
<pre class="brush: bash; title: ; notranslate">
set TLA_PATH=c:/tools/tla2
java -cp %TLA_PATH% tla2sany.SANY %1 %2 %3 %4
</pre>
<p>The script should be invoked with the name of the TLA file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2009/08/how-to-install-tla-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://www.tlaplus.net/posts/2009/07/welcome/</link>
		<comments>http://www.tlaplus.net/posts/2009/07/welcome/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 06:45:40 +0000</pubDate>
		<dc:creator>Simon Zambrovski</dc:creator>
				<category><![CDATA[Unspecified]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[PlusCal]]></category>
		<category><![CDATA[TLA+]]></category>

		<guid isPermaLink="false">http://www.tlaplus.net/?p=1</guid>
		<description><![CDATA[Welcome to the TLA+ webpage. The main purpose of this page is to help the community around the TLA+ and PlusCal projects communicate and grow. Thus, we start with a small blog and will integrate other technologies as soon as they are required. Have a lot of fun!]]></description>
			<content:encoded><![CDATA[<p>Welcome to the TLA+ webpage.</p>
<p>The main purpose of this page is to help the community around the TLA+ and PlusCal projects communicate and grow. Thus, we start with a small blog and will integrate other technologies as soon as they are required.</p>
<p>Have a lot of fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tlaplus.net/posts/2009/07/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
