Weakly Equivalent Arrays

  title={Weakly Equivalent Arrays},
  author={J{\"u}rgen Christ and Jochen Hoenicke},
The extensional theory of arrays is widely used to model systems. Hence, efficient decision procedures are needed to model check such systems. In this paper, we present an efficient decision procedure for the theory of arrays. We build upon the notion of weak equivalence. Intuitively, two arrays are weakly equivalent if they only differ at finitely many indices. We formalise this notion and show how to exploit weak equivalences to decide formulas in the quantifier-free fragment of the theory of… 
Solving and Interpolating Constant Arrays Based on Weak Equivalences
A new solver and interpolation algorithm for the theory of arrays with constant arrays that shows that only a few new rules are required and proves the correctness of the decision procedure and the interpolation procedure.
Reasoning About Vectors using an SMT Theory of Sequences
This paper introduces the theory, proposes a basic calculus adapted from one for the theory of strings, and extends it to efficiently handle common vector operations, and proves that the calculus is sound and shows how to construct a model when it terminates with a saturated con figuration.
Counterexample-Guided Prophecy for Model Checking Modulo the Theory of Arrays
A framework for model checking infinite-state systems by automatically augmenting them with auxiliary variables, enabling quantifier-free induction proofs for systems that would otherwise require quantified invariants, and a counterexample-guided abstraction refinement scheme for the theory of arrays is developed.
Efficient Interpolation for the Theory of Arrays
This work gives an interpolation algorithm for the lemmas produced by the array solver and shows that the produced interpolants are useful to prove memory safety for C programs.
The Map Equality Domain
We present a method that allows us to infer expressive invariants for programs that manipulate arrays and, more generally, data that are modeled using maps (including the program memory which is
MathSAT5 (Nonlinear) at the SMT Competition 2019
This paper presents MathSAT5, a lazy SMT solver based on the DPLL(T) architecture that uses SMT(UFLA) as abstract domain and uses MiniSAT as the underlying SAT solver, based on incremental linearization.
Decision Procedures
This chapter focuses on methods for checking reachability properties in program analysis, and the growing interest and need for decision procedures such as those described in this book led to the SMT-LIB initiative, which streamline the research and tool development in the field to which this book is dedicated.
Model checking boot code from AWS data centers
CBMC is now the first source-level static analysis tool to extract the memory layout described in a linker script for use in its analysis, and it is proved that the initial boot code running in data centers at Amazon Web Services is memory safe.
cvc5: A Versatile and Industrial-Strength SMT Solver
This paper serves as a comprehensive system description of cvc5 ’s architectural design and highlights the major features and components introduced since CVC4 1.8.
EUFicient Reachability in Software with Arrays
A judicious abstraction of array operations to the logic of equality with uninterpreted functions (EUF) shows that it can directly reason about array reads and adaptively learn lemmas about array writes leading to significant performance improvements over existing approaches.


Generalized, efficient array decision procedures
This paper presents combinatory array logic, CAL, using a small, but powerful core of combinators, and reduces it to the theory of uninterpreted functions, which allows expressing properties that go well beyond the basic array theory.
Lemmas on demand for the extensional theory of arrays
This work precisely describes how the lemmas on demand approach can be applied to the decision problem of satisfiability in the theory of arrays and shows how the new propagation based algorithm can be generalized to the extensional theory of array.
Combining Data Structures with Nonstably Infinite Theories Using Many-Sorted Logic
This paper provides a method that is able to combine a polite theory S with any theory T of the elements, regardless of whether T is stably infinite or not, and generalize to many-sorted logic.
Proof-Producing Congruence Closure
An incremental congruence closure algorithm that has an additional $\mathit{Explain}$ operation is introduced, where a k-step proof can be recovered in almost optimal time (quasi-linear in k), without increasing the overall O(n log n) runtime of the fastest known congruent closure algorithms.
DPLL( T): Fast Decision Procedures
This work proposes a new approach, namely a general DPLL(X) engine, whose parameter X can be instantiated with a specialized solver Solver T for a given theory T, thus producing a systemDPLL(T).
Three uses of the Herbrand-Gentzen theorem in relating model theory and proof theory
  • W. Craig
  • Mathematics
    Journal of Symbolic Logic
  • 1957
The Herbrand-Gentzen Theorem will be applied to generalize Beth's results from primitive predicate symbols to arbitrary formulas and terms, showing that the expressive power of each first-order system is rounded out, or the system is functionally complete.
Quantifier-Free Interpolation of a Theory of Arrays
This paper shows that it is possible to obtain quantifier-free interpolants for a Skolemized version of the extensional theory of arrays, and proves this in two ways: non-constructively, using the model theoretic notion of amalgamation, and constructively, by designing an interpolating procedure based on solving equations between array updates.
New results on rewrite-based satisfiability procedures
This work proves termination of a rewrite-based first-order engine on the theories of records, integer offsets,integer offsets modulo and lists, and gives a modularity theorem stating sufficient conditions for termination on a combination of theories, given termination on each.
Simplification by Cooperating Decision Procedures
The simplifier finds a normal form for any expression formed from individual variables that is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates.
A decision procedure for an extensional theory of arrays
A decision procedure for an extensional theory of arrays is presented and it is proved that it is correct.