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

Abstract 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 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 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 Proof System.

[1]  Christoph Weidenbach,et al.  Computing Small Clause Normal Forms , 2001, Handbook of Automated Reasoning.

[2]  Christoph Weidenbach,et al.  SPASS: Combining Superposition, Sorts and Splitting , 2000 .

[3]  Geoff Sutcliffe The TPTP Problem Library and Associated Infrastructure , 2009, Journal of Automated Reasoning.

[4]  Claude Marché,et al.  Discharging Proof Obligations from Atelier B Using Multiple Automated Provers , 2012, ABZ.

[5]  D. Knuth,et al.  Simple Word Problems in Universal Algebras , 1983 .

[6]  Leslie Lamport,et al.  Should your specification language be typed , 1999, TOPL.

[7]  Sylvain Conchon,et al.  Tuning the Alt-Ergo SMT Solver for B Proof Obligations , 2014, ABZ.

[8]  Jeremy Avigad Eliminating definitions and Skolem functions in first-order logic , 2003, TOCL.

[9]  Stephan Merz,et al.  Proving Determinacy of the PharOS Real-Time Operating System , 2016, ABZ.

[10]  María Manzano,et al.  Extensions of First-Order Logic , 1996 .

[11]  Lawrence C. Paulson,et al.  Extending Sledgehammer with SMT Solvers , 2011, Journal of Automated Reasoning.

[12]  Stephan Merz,et al.  A Rigorous Correctness Proof for Pastry , 2016, ABZ.

[13]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[14]  Gérard P. Huet,et al.  Confluent Reductions: Abstract Properties and Applications to Term Rewriting Systems , 1980, J. ACM.

[15]  Sylvain Conchon,et al.  CC(X): Semantic Combination of Congruence Closure with Solvable Theories , 2008, Electron. Notes Theor. Comput. Sci..

[16]  Pascal Fontaine,et al.  SMT Solvers for Rodin , 2012, ABZ.

[17]  Lawrence C. Paulson,et al.  Set theory for verification: I. From foundations to functions , 1993, Journal of Automated Reasoning.

[18]  Jean-Raymond Abrial,et al.  Modeling in event-b - system and software engineering by Jean-Raymond Abrial , 2010, SOEN.

[19]  G. S. Tseitin On the Complexity of Derivation in Propositional Calculus , 1983 .

[20]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[21]  Xiangyu Zhang,et al.  Z3str2: an efficient solver for strings, regular expressions, and length constraints , 2017, Formal Methods Syst. Des..

[22]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[23]  Christoph Weidenbach,et al.  Computing Tiny Clause Normal Forms , 2013, CADE.

[24]  Adam Naumowicz,et al.  Mizar in a Nutshell , 2010, J. Formaliz. Reason..

[25]  Damien Doligez,et al.  Zenon Modulo: When Achilles Outruns the Tortoise Using Deduction Modulo , 2013, LPAR.

[26]  Jonathan M. McCune,et al.  Memoir---Formal Specs and Correctness Proofs , 2011 .

[27]  Josef Urban Translating Mizar for First Order Theorem Provers , 2003, MKM.

[28]  Gerard Huet,et al.  Conflunt reductions: Abstract properties and applications to term rewriting systems , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).