Abstract

tla + is a specification language, mainly intended for concurrent and distributed systems. Its non-temporal fragment is based on a variant of untyped zf 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.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call