Encoding TLA+ into unsorted and many-sorted first-order logic

Stephan Merz, Hernán Vanzetto
Abstract
TLA+ is a specification language designed for the verification of concurrent and distributed algorithms and systems. We present an encoding of a non-temporal fragment of TLA+ into (unsorted) first-order logic and many-sorted first-order logic, the input languages of first-order automated theorem provers. The non-temporal subset of TLA+ is based on untyped set theory and includes functions, arithmetic expressions, and Hilbert's choice operator. The translation, based on encoding techniques such as boolification, injection of unsorted expressions into sorted languages, term rewriting, and abstraction, is the core component of a back-end prover based on first-order theorem provers and SMT solvers for the TLA+ Proof System.
Available as: PDF
Reference
@article{merz:encoding-scp,
  author    = {Stephan Merz and Hern{\'{a}}n Vanzetto},
  title     = {Encoding TLA\textsuperscript{+} into unsorted and many-sorted first-order
               logic},
  journal   = {Sci. Comput. Program.},
  volume    = {158},
  pages     = {3--20},
  year      = {2018},
}

Stephan Merz