Skip to main content

TLA+ tools: download TLC, compile custom modules, run model checker

Project description

TLA+ CLI

Command-line tool for working with TLA+ specifications and the TLC model checker.

Installation

Install system-wide via uv tool

uv tool install tlaplus-cli

Upgrade:

uv tool upgrade tlaplus-cli

Uninstall

uv tool uninstall tlaplus-cli

Usage

Download TLC

# Download stable release
tla download

# Download nightly build
tla download --nightly

Check Java Version

tla check-java

Compile Custom Java Modules

tla build

# Verbose output
tla build --verbose

Compiles .java files from workspace/modules/ into workspace/classes/.

Run TLC

tla tlc <spec_name>

For example:

tla tlc queue

Configuration

On first run, a default config is created at:

~/.config/tla/config.yaml

Edit this file to set your workspace path and TLC options:

tla:
  jar_name: tla2tools.jar
  urls:
    stable: https://github.com/tlaplus/tlaplus/releases/latest/download/tla2tools.jar
    nightly: https://tla.msr-inria.inria.fr/tlatoolbox/ci/dist/tla2tools.jar

workspace:
  root: .                 # Project root (relative to CWD)
  spec_dir: spec          # Directory containing .tla files
  modules_dir: modules    # Directory containing .java files
  classes_dir: classes    # Directory for compiled .class files

tlc:
  java_class: tlc2.TLC
  overrides_class: tlc2.overrides.TLCOverrides

java:
  min_version: 11
  opts:
    - "-XX:+IgnoreUnrecognizedVMOptions"
    - "-XX:+UseParallelGC"

Directory Layout

Directory Purpose Location
Config config.yaml ~/.config/tla/
Cache tla2tools.jar ~/.cache/tla/
Workspace specs + modules + classes Set via workspace.root in config

Note on Package Name

This package is distributed on PyPI as tlaplus-cli but imports as tla. There is a separate, unrelated tla package on PyPI (a TLA+ parser). If you have both installed, they will conflict. In practice this is unlikely since they serve different purposes, but be aware of it.

Dependencies

  • Java >= 11: Required for TLC.
  • uv: For installing the tool.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tlaplus_cli-0.1.8.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tlaplus_cli-0.1.8-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file tlaplus_cli-0.1.8.tar.gz.

File metadata

  • Download URL: tlaplus_cli-0.1.8.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tlaplus_cli-0.1.8.tar.gz
Algorithm Hash digest
SHA256 b98290cc32cb62b8ff78cb0dbd567377b99267377704ffc845bcefc9d7fd9c6a
MD5 cc2cd8e231d6330e92f02ac96e7c73bb
BLAKE2b-256 f4f739d20f7a379e77aad8ea11d150ae74e6a5ed4035905f638a55a2765a7239

See more details on using hashes here.

Provenance

The following attestation bundles were made for tlaplus_cli-0.1.8.tar.gz:

Publisher: release.yml on nikolskiy/tlaplus-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tlaplus_cli-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: tlaplus_cli-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tlaplus_cli-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 dffc42e9c7a107aa9f5a45431cd7142392b4f761cc165840856edc6b6977a542
MD5 52151ccf929b35138743100d72420cd5
BLAKE2b-256 bc1ee38a1f7480f76aaff606b437f13ea472478e1867d73a80a10fd48ba4a947

See more details on using hashes here.

Provenance

The following attestation bundles were made for tlaplus_cli-0.1.8-py3-none-any.whl:

Publisher: release.yml on nikolskiy/tlaplus-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page