Simplify: a theorem prover for program checking
TL;DR: The article describes two techniques, error context reporting and error localization, for helping the user to determine the reason that a false conjecture is false, and includes detailed performance figures on conjectures derived from realistic program-checking problems.
read more
Abstract: This article provides a detailed description of the automatic theorem prover Simplify, which is the proof engine of the Extended Static Checkers ESC/Java and ESC/Modula-3. Simplify uses the Nelson--Oppen method to combine decision procedures for several important theories, and also employs a matcher to reason about quantifiers. Instead of conventional matching in a term DAG, Simplify matches up to equivalence in an E-graph, which detects many relevant pattern instances that would be missed by the conventional approach. The article describes two techniques, error context reporting and error localization, for helping the user to determine the reason that a false conjecture is false. The article includes detailed performance figures on conjectures derived from realistic program-checking problems.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Z3: an efficient SMT solver
Leonardo de Moura,Nikolaj Bjørner +1 more
- 29 Mar 2008
TL;DR: Z3 is a new and efficient SMT Solver freely available from Microsoft Research that is used in various software verification and analysis applications.
8.2K
The Daikon system for dynamic detection of likely invariants
Michael D. Ernst,Jeff H. Perkins,Philip J. Guo,Stephen McCamant,Carlos Pacheco,Matthew S. Tschantz,Chen Xiao +6 more
TL;DR: Daikon is an implementation of dynamic detection of likely invariants; that is, the Daikon invariant detector reports likely program invariants, a property that holds at a certain point or points in a program.
1.2K
Satisfiability Modulo Theories
Clark Barrett,Cesare Tinelli +1 more
- 01 Jan 2018
TL;DR: The architecture of a lazy SMT solver is discussed, examples of theory solvers are given, how to combine such solvers modularly is shown, and several extensions of the lazy approach are mentioned.
1.1K
Dafny: an automatic program verifier for functional correctness
K. Rustan M. Leino
- 25 Apr 2010
TL;DR: A tour of the language and verifier Dafny, which has been used to verify the functional correctness of a number of challenging pointer-based programs, is given and the full functional specification of the Schorr-Waite algorithm is shown.
Journal of the ACM
Dan Suciu,Victor Vianu +1 more
TL;DR: The following three articles are full versions of extended abstracts that were presented at the Twenty-Third ACM SIGMOD-SigACT-SIGART Symposium on Principles of Database Systems (PODS) and have been reviewed according to the standard JACM refereeing process.
862
References
•Book
Linear Programming and Extensions
George B. Dantzig
- 01 Jan 1963
TL;DR: This classic book looks at a wealth of examples and develops linear programming methods for their solutions and begins by introducing the basic theory of linear inequalities and describes the powerful simplex method used to solve them.
6.1K
Chaff: engineering an efficient SAT solver
Matthew W. Moskewicz,Conor F. Madigan,Ying Zhao,Lintao Zhang,Sharad Malik +4 more
- 22 Jun 2001
TL;DR: The development of a new complete solver, Chaff, is described which achieves significant performance gains through careful engineering of all aspects of the search-especially a particularly efficient implementation of Boolean constraint propagation (BCP) and a novel low overhead decision strategy.
Related Papers (5)
Leonardo de Moura,Nikolaj Bjørner +1 more
- 29 Mar 2008
[...]
Thomas A. Henzinger,Ranjit Jhala,Rupak Majumdar,Grégoire Sutre +3 more
- 01 Jan 2002