2009 · 132 citations · 15 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCombinatoricsTheory Of ComputationBoolean AlgebraComputational AlgebraComputational ComplexityDeductive VerificationSymbolic ExecutionArrays TheoryFormal Hardware VerificationHardware VerificationSymbolic AnalysisUninterpreted Functions
The theory of arrays is ubiquitous in the context of software and hardware verification and symbolic analysis. The basic array theory was introduced by McCarthy and allows to symbolically representing array updates. In this paper we present combinatory array logic, CAL, using a small, but powerful core of combinators, and reduce it to the theory of uninterpreted functions. CAL allows expressing properties that go well beyond the basic array theory. We provide a new efficient decision procedure for the base theory as well as CAL. The efficient procedure serves a critical role in the performance of the state-of-the-art SMT solver Z3 on array formulas from applications.
15
Simplify: a theorem prover for program checking
David Detlefs, Greg Nelson, James B. Saxe · Journal of the ACM · 2005 · 781 citations
Solving SAT and SAT Modulo Theories
Robert Nieuwenhuis, Albert Oliveras, Cesare Tinelli · Journal of the ACM · 2006 · 777 citations
Towards a Mathematical Science of Computation.
John McCarthy · 1962 · 454 citations
A decision procedure for an extensional theory of arrays
Aaron Stump, Clark Barrett, David L. Dill et al. · 2002 · 136 citations