talex5 / tla

A Dockerfile for building the TLA+ tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is useful to run automated tests on models (e.g. in CI).

It can:

  1. Run TLC models.
  2. Check TLAPS proofs.
  3. Generate PDFs.

Example Makefile:

WORKERS := 4

TLA := docker run --rm -it --workdir /mnt -v ${PWD}:/mnt talex5/tla

.PHONY: all check tlaps pdfs

all: check tlaps pdf

check:
       ${TLA} tlc -workers ${WORKERS} Spec.tla

tlaps:
       ${TLA} tlapm -I /usr/local/lib/tlaps Spec.tla

%.pdf: %.tla
       [ -d metadir ] || mkdir metadir
       ${TLA} java tla2tex.TLA -shade -latexCommand pdflatex -latexOutputExt pdf -metadir metadir $<

pdfs: Spec.pdf

The tlc command runs java tlc2.TLC and then greps the results for the string Model checking completed. No error has been found., returning a non-zero exit status if it is not found.

I tried to follow the instructions at https://tla.msr-inria.inria.fr/tlaps/content/Download/Source.html and fix up any problems as they turned up.

To use this with the toolbox for interactive proof checking, I put this file in my PATH:

#!/bin/bash
docker run --rm -i -v ${PWD}:${PWD} --entrypoint tlapm talex5/tla "$@"

About

A Dockerfile for building the TLA+ tools

License:Other


Languages

Language:Dockerfile 92.2%Language:Shell 6.4%Language:Makefile 1.4%