The TLA+ Toolbox
Last modified on Thu 23 December 2021 at 18:37:52 PST by lamport -->
in your browser.
The TLA Toolbox is an IDE (integrated development environment)
for the TLA+ tools. You can use it to:
- Create and edit your specs, with the locations of parsing errors
marked in the modules.
- Run the PlusCal translator, with the locations of translation
errors marked in the PlusCal code.
- View the pretty-printed versions of your modules.
- Run the TLC model checker.
The Toolbox allows you to explorer an error trace produced by
TLC—for example, by evaluating arbitrary formulas at each step
in the trace.
- Run the
TLA+ proof system.
The Toolbox was written by Simon Zambrovski and improved by Markus Kuppe
and Daniel Ricketts.
Users who would prefer a more lightweight IDE for TLA+ may want
to try the Visual Studio Code extension for TLA+.
However, it lacks many of the Toolbox's features.
Below is a link to a page from which you can download the versions
of the Toolbox for various systems, the name of the file indicating
which system it is for. For example,
is for 64-bit Linux.
Please thank Microsoft and HP for the open-source release of the
code by reading the following agreement.
By installing, copying, or otherwise using this software, you agree
to be bound by the terms of its license.
Read the license.
You can download the Toolbox from either of these sites:
-- DOWNLOAD FROM GITHUB --
-- ALTERNATE DOWNLOAD
Put the downloaded zip file in a convenient folder.
Installing the Toolbox
Here are the instructions for the different operating systems.
Download the zip file into a convenient folder.
Extract the contents of the file by right-clicking on it
in the File Explorer and selecting Extract All
You can choose what folder to put the extracted files in; the
default is a subfolder of the folder containing the zip file.
Select the Show extracted files when complete
click on Extract
. The extracted files will be
in a subfolder named toolbox
Open that subfolder. You can run the Toolbox by double-clicking on
the file called
But before doing that, you probably want to make it easier to
run the Toolbox later by doing one of the following:
Create a shortcut by right-clicking on the file and selecting
Create shortcut, then
move the shortcut to the desktop or some other convenient
You can run the Toolbox by double-clicking on the shortcut.
- Right-click on the file and select Pin to Start or
Pin to taskbar. You can then run the Toolbox from the
Start Menu or the taskbar.
When you first run the Toolbox, the operating system may tell you it's
not safe to run and it won't let you run it. Somewhere on the warning
window, perhaps cleverly hidden, is something you can click to tell
the operating system to run it anyway. If you can't find it, look the
warning up on the Web or post a cry for help on the
TLA+ Google group.
Download the file and, if necessary, unzip it by double-clicking on
it. (Depending on how your browser and system are set up, the
downloaded file may already be unzipped.) This results in an
application bundle called TLA+ Toolbox.app, which you can move
to the Applications folder. The Toolbox can be started by
double-clicking that application.
When you try to open the Toolbox for the first time, Mac OS will
probably be reluctant to let you run it.
Try to control-click
(right-click) on the application, choose Open from the
drop-down menu, and confirm that you want to open the application in
the subsequent dialog box. If this doesn't work, look on
the Web or ask for help on the
TLA+ Google group.
For Homebrew users, a Toolbox Cask is available with the name
Extract the contents of the zip file to a convenient directory.
subdirectory. You can then run the
Toolbox by executing the
file in that
You need to install pdflatex only if you want to run the TLA+
pretty-printer (with the Toolbox's Produce PDF Version
command). The pdflatex program is distributed as part of a LaTeX
installation, and it will already be installed if you use TeX or
LaTeX. It may also be installed if you're running Linux.
Run the command
in a command shell / terminal window to see if it's already
installed. If it isn't, you can obtain it by installing LaTeX
on your computer.
The LaTeX Project
has links to various sources of LaTeX.
Here are ones that we recommend for different operating systems.
Whatever method you use, you should check with a command shell
that it is installed. (Open a new command shell after you
comes with detailed
web page points to
simple instructions for downloading the file
. It claims that running the file
provides straightforward instructions for installing LaTeX.
You can ignore instructions on how to write a LaTeX document.
If you already use a manager such as MacPorts or Homebrew for open-source software
packages, you can use it to install LaTeX. Please refer to the
instructions of your package manager for details.
The provider of your Linux software should also be able to provide you
with LaTeX for it.
Using the Toolbox
When you run the Toolbox, the instructions that appear on the
welcome screen tell you what to do next: namely, read the indicated
help page. For now, the help pages are the only
user manual that exists for the Toolbox. Read it. Even
after using the Toolbox for a while, you're unlikely to have
discovered all its features. Read all the help
pages. You never know what you might find in them.
The Toolbox works reasonably well, but
there are a number of minor bugs that haven't yet been
fixed. The current bug repository, where you can look for known
bugs and report new ones, is:
The GitHub Repository tlaplus Issues page
Bugs from before 2013, including
many that were considered not worth the trouble of fixing, are
The Bugzilla Database
Implementing the Toolbox has involved a lot of work by few people.
They were able to build a
sophisticated tool in a short time by using Eclipse. However, this required
compromises, and there are some annoying (but not serious)
inconveniences in the Toolbox because they either didn't have the time
or the Eclipse expertise to fix them. So, please try to be
helpful instead of angry if something doesn't work right. Report
the problem if it's not already in the bug list, and help us fix it if you
Version 1.7.1 of 31 December 2020
- Eliminates bug in version 1.7.0 that caused some TLC error
traces not to be shown.
- Eliminates a number of other bugs; see
for a list.
Version 1.7.0 of 26 April 2020
- Many features have been added to the Toolbox.
- Various features have been added for running TLC from a command line.
- Many bugs have been fixed, including a TLC bug in
reporting liveness checking failure.
There have been too many new features and bug fixes to list
Version 1.6.0 of 11 July 2019
- Users can choose to have the Toolbox send us anonymous statistics about
they use TLC. We encourage you to do so.
- The Toolbox's interface for running TLC has been redesigned
to make it easier to use.
- Installing the Toolbox now automatically installs Java, so there
is no need to install
- Features have been added to make error-trace exploration expressions
powerful and easier to write. Click on
? in the
menu for adding an exploration
expression for details.
- There is now a TLC profiler to help find errors in a spec
and to help optimize
model checking. See Profiling
in the Features section of the TLC Options Page
Version 1.5.7 of 18 July 2018
- 32-bit versions of the Toolbox are no longer available.
- Bugs in the TLC implementation of the standard
module have been corrected.
- An experimental standard module
has been added.
- Numerous improvements have been made to TLC and
Version 1.5.6 of 30 January 2018
- Corrects the TLC bug described
- Fixes a bug in the Toolbox's update mechanism that would cause
it to make TLC
impossible to run.
- Fixes a TLC bug that caused it to stop with an
integer overflow exception after many
hours of model checking.
Version 1.5.5 of 5 January 2018
- Provides only a partial fix of the TLC bug
fixed in version 1.5.6.
Version 1.5.4 of Approximately 7 October 2017
- All known issues with Java9 and macOS High Sierra have been fixed.
- The Toolbox can now display a visual representation of
a small state graph.
- TLC's error reporting has been improved.
- A number of features have been added and bugs fixed in
the Toolbox and TLC.
Version 1.5.3 of 14 April 2017
- Bug fixes include eliminating incorrect error traces in
TLC liveness checking.
- Execution by multiple worker threads in TLC has been speeded up.
- The Toolbox can now be set as the default program for running .tla files.
- The built-in PDF viewer is now the default on Windows and Linux.
- TLC can be run on multiple EC2 or Azure instances
by button pushing.
- An apt repository is provided for Linux installations.
Version 1.5.2 of 21 December 2015
- Added a quick access dialog for showing and selecting models
- The toolbox now maintains backups of previous versions of modules.
- Models now have a field for free-form comments.
- Only one Toolbox instance can now be run at a time.
-userFile parameter allows redirecting
Print/PrintT output to a file.
- Not all states of very long error traces are displayed initially.
- Ended support for 32-bit Toolbox releases on Mac OSX.
- Several optimizations and bug fixes were made.
Version 1.5.1 of 1 June 2015
- Fixes several bugs in TLC and a bug in the Toolbox's
Version 1.5.0 of 11 May 2015
- Distributed TLC in the Cloud--significantly improves
- Significantly speeds ups TLC's liveness checking.
- Improvements to the Decompose Proof Command.
- Improvements to the TLC Errors view, including ability to
in reverse order.
- Has some changes to the way the Toolbox handles its subwindows.
- Fixes all known bugs in TLC's liveness checking.
- Fixes TLC bug of infinite looping if a recursively
defined operator is used
as an operator argument in its own
- Numerous bug fixes.
Version 1.4.8 of 25 February 2014
- Added a feature to Renumber Proof command.
- Disallowed <*> and <+> in names of named proof steps.
- Minor bug fixes to Toolbox and TLC.
- Corrected definition of Tail in standard Sequences module.
Version 1.4.7 of 24 April 2013
- Fixes bugs in the Toolbox's Decompose Proof command
Version 1.4.6 of 18 April 2013
- Fixes bug in PlusCal translation of fairness for algorithms with procedures.
- Adds handling of strings to TLC's implementation of Tail and SubSeq.
- Fixes a minor TLATeX bug.
Version 1.4.5 of 22 February 2013
- The Decompose Proof Command has been added to the Toolbox editor.
It makes it easy to perform the standard hierarchical decompositions of
based on the structure of the formula to be proved.
- A few minor bugs have been fixed.
Version 1.4.4 of 30 November 2012
- There have been numberous changes to distributed TLC and
how to run it.
- Syntax coloring of PlusCal algorithms was added.
- TLATeX now formats PlusCal algorithms.
- Support for library folders required by
Version 1.1.1 of TLAPS has been added.
Version 1.4.3.c of 24 May 2012
Version 1.4.3.b of 24 April 2012
Version 1.4.3.a of 17 April 2012
These are intermediate versions that contain
the current version of TLAPS.tla and
fix mostly minor bugs.
Version 1.4.3.c fixes a bug that can cause an updated version
of the Toolbox
to use an earlier version of TLC.
The latest version is available only by updating. (Select
Check for Updates
on the Toolbox's
Version 1.4.3 of 10 April 2012
- Adds a "Cardinality of largest enumerable set" TLC parameter.
- Fixed the order of definitions and declarations in the MC.tla file.
- Includes TLC version 2.05 of 7 April 2012, which
adds the TLCEval operator to the TLC module.
- Includes PlusCal Verion 1.8 of 30 March 2012.
Version 1.4.2 of 17 February 2012
- Selecting a location in an error report and
control-clicking jumps to its source in PlusCal code.
- Supports library folders (directories) for modules used in multiple
- Provides a built-in pdf viewer that can be used for viewing pretty-printed
Version 1.4.1 of 19 January 2012
- Contains a new editor command for jumping from a region in the TLA+ translation
of a PlusCal algorithm to the region of PlusCal code that generated it.
- Introduces some additional editor commands, including one for parenthesis matching.
- Fixes a number of bugs, including ones that occurred when TLC checked large models.
Version 1.4.0 of 16 September 2011
- Includes a method for obtaining new releases from
inside the Toolbox.
- Includes PlusCal Version 1.6, which:
* Slightly changes the syntax for specifying fairness.
* Permits using previously declared
macros in a macro definition.
- Added the Forget Specification command.
- Includes a first release of the distributed version of TLC.
- Includes a fix to SANY to support binary, octal, and hex numbers.
- Added default overriding of definitions like
Foo == CHOOSE v : v \notin S.
- Definition overriding section of advanced model page now opens
if there are overrides.
- Fixed a TLC bug in overriding instantiated definitions.
- Displays timeout as a reason for prover failure.
Version 1.3.1 of 5 April 2011
- Includes PlusCal Version 1.5, which adds:
* Fairness specifation in a PlusCal algorithm.
* Translation simplifications, including omission of
the pc variable when not needed.
- Contains a number of minor bug fixes.
Version 1.2.1 of 2 October 2010
- Added a sophisticated interface for running the TLAPS proof checker.
- Added a command for displaying all globally defined symbols.
- Added commands for displaying all uses of a symbol.
- The Goto Declaration command now works for locally defined symbols.
- Added commands for formatting boxed comments.
- Made some additional minor changes.
Version 1.1.2 of 6 May 2010
- Added trace Explorer, which evaluates expressions on an error trace.
- Added folding of proofs to permit reading them hierarchically.
- Added TLA Proof Manager menu item that currently does nothing.
Version 1.1.1 of 22 Mar 2010
- Fixes TLC bug that made restarting from a checkpoint not work.
- Various minor bug fixes.
Version 1.1.0 of 4 February 2010
- The initial public release.