## Section: Software

### The TLA^{+} proof system

Participants : Stephan Merz, HernĂˇn-Pablo Vanzetto.

TLAPS, the TLA^{+} proof system, is a platform for developing and
mechanically verifying TLA^{+} proofs. It is developed at the Joint
MSR-INRIA Centre. The TLA^{+} proof language is declarative and based on
standard mathematical logic; it supports hierarchical and non-linear proof
construction and verification. TLAPS consists of a *proof manager* that
interprets the proof language and generates a collection of proof obligations
that are sent to *backend verifiers* that include theorem provers, proof
assistants, SMT solvers, and decision procedures.

TLAPS is publically available at
http://msr-inria.inria.fr/~doligez/tlaps/ ,
it is distributed under a BSD-like license. It handles the non-temporal part
of TLA^{+} with the exception of computing enabledness predicates and can
currently be used to prove safety, but not liveness properties. Its backends
include a tableau prover for first-order logic, an encoding of TLA^{+} in
the proof assistant Isabelle, as well as an SMT translation and a custom
decision procedure for Presburger arithmetic. Our main contribution in 2011
has been the implementation of a new SMT backend that handles formulas
including linear arithmetic, elementary set theory, functions, tuples, and
records (see sectionÂ
6.4 ). Other efforts in 2011
concerned improvements and stabilization of the fingerprinting technique that
avoids reproving proof obligations that have remained unchanged since a
previous prover run.