Automatic Verification of TLA + Proof Obligations with SMT Solvers
نویسندگان
چکیده
TLA is a formal specification language that is based on ZF set theory and the Temporal Logic of Actions TLA. The TLA proof system tlaps assists users in deductively verifying safety properties of TLA specifications. tlaps is built around a proof manager, which interprets the TLA proof language, generates corresponding proof obligations, and passes them to backend verifiers. In this paper we present a new backend for use with SMT solvers that supports elementary set theory, functions, arithmetic, tuples, and records. Type information required by the solvers is provided by a typing discipline for TLA proof obligations, which helps us disambiguate the translation of expressions of (untyped) TLA, while ensuring its soundness. Preliminary results show that the backend can help to significantly increase the degree of automation of certain interactive proofs.
منابع مشابه
Towards certification of TLA+ proof obligations with SMT solvers
TLA+ is a formal specification language that is based on Zermelo-Fränkel set theory and the Temporal Logic of Actions TLA. The TLA+ proof system TLAPS assists users in deductively verifying safety properties of TLA+ specifications. TLAPS is built around a proof manager, which interprets the TLA+ proof language, generates corresponding proof obligations, and passes them to backend verifiers. In ...
متن کاملHarnessing SMT Solvers for TLA+ Proofs
TLA+ is a language based on Zermelo-Fraenkel set theory and linear temporal logic designed for specifying and verifying concurrent and distributed algorithms and systems. The TLA+ proof system TLAPS allows users to interactively verify safety properties of these systems. At the core of TLAPS, a proof manager interprets the proof language, generates corresponding proof obligations and passes the...
متن کاملVerifying Safety Properties with the TLA+ Proof System
TLAPS, the TLA proof system, is a platform for the development and mechanical verification of TLA proofs. The TLA proof language is declarative, and understanding proofs requires little background beyond elementary mathematics. The language supports hierarchical and non-linear proof construction and verification, and it is independent of any verification tool or strategy. Proofs are written in ...
متن کاملCombining Decision Procedures by (Model-)Equality Propagation
SMT (Satisfiability Modulo Theories) solvers are automatic verification engines suitable to discharge important classes of proof obligations generated in applying formal construction of software and hardware designs. In this paper, we present a new approach to combine decision procedures and propositional solvers into an SMT-solver. This approach is based on the generation of model equalities b...
متن کاملPredicting SMT Solver Performance for Software Verification
The Why3 IDE and verification system facilitates the use of a wide range of Satisfiability Modulo Theories (SMT) solvers through a driver-based architecture. We present Where4: a portfolio-based approach to discharge Why3 proof obligations. We use data analysis and machine learning techniques on static metrics derived from program source code. Our approach benefits software engineers by providi...
متن کامل