Refinement Types for TLA+

Stephan Merz and Hernán Vanzetto
Abstract
TLA+ is a specification language, mainly intended for concurrent and distributed systems. Its non-temporal fragment is based on a variant of (untyped) Zermelo-Fraenkel set theory. Motivated by the integration of the TLA+ Proof System with SMT solvers or similar tools based on multi-sorted first-order logic, we define a type system for TLA+ and we prove its soundness. The system includes refinement types, which fit naturally in set theory. Combined with dependent function types, we obtain type annotations on top of an untyped specification language, getting the best of both the typed and untyped approaches. After implementing the type inference algorithm, we show that the resulting typing discipline improves the verification capabilities of the proof system.
© Springer 2014
Available as: PDF
Reference
@InProceedings{merz:refinement-types,
  author =       {Stephan Merz and Hern{\'a}n Vanzetto},
  title =        {Refinement Types for {TLA\textsuperscript{+}}},
  booktitle = {6th Intl. {NASA} Symp. Formal Methods (NFM 2014)},
  year =      2014,
  editor =    {Julia M. Badger and Kristin Yvonne Rozier},
  volume =    8430,
  series =    {LNCS},
  pages =     {143-157},
  address =   {Houston, TX, U.S.A.},
  publisher = {Springer},
}

Stephan Merz