231 research outputs found
Efficient Generation of Craig Interpolants in Satisfiability Modulo Theories
The problem of computing Craig Interpolants has recently received a lot of
interest. In this paper, we address the problem of efficient generation of
interpolants for some important fragments of first order logic, which are
amenable for effective decision procedures, called Satisfiability Modulo Theory
solvers.
We make the following contributions.
First, we provide interpolation procedures for several basic theories of
interest: the theories of linear arithmetic over the rationals, difference
logic over rationals and integers, and UTVPI over rationals and integers.
Second, we define a novel approach to interpolate combinations of theories,
that applies to the Delayed Theory Combination approach.
Efficiency is ensured by the fact that the proposed interpolation algorithms
extend state of the art algorithms for Satisfiability Modulo Theories. Our
experimental evaluation shows that the MathSAT SMT solver can produce
interpolants with minor overhead in search, and much more efficiently than
other competitor solvers.Comment: submitted to ACM Transactions on Computational Logic (TOCL
A Simple and Flexible Way of Computing Small Unsatisfiable Cores in SAT Modulo Theories
Finding small unsatisfiable cores for SAT problems has recently received a lot of interest, mostly for its applications in formal verification. However, propositional logic is often not expressive enough for representing many interesting verification problems, which can be more naturally addressed in the framework of Satisfiability Modulo Theories, SMT. Surprisingly, the problem of finding unsatisfiable cores in SMT has received very little attention in the literature; in particular, we are not aware of any work aiming at producing small unsatisfiable cores in SMT. In this paper we present a novel approach to this problem. The main idea is to combine an SMT solver with an external propositional core extractor: the SMT solver produces the theory lemmas found during the search; the core extractor is then called on the boolean abstraction of the original SMT problem and of the theory lemmas. This results in an unsatisfiable core for the original SMT problem, once the remaining theory lemmas have been removed. The approach is conceptually interesting, since the SMT solver is used to dynamically lift the suitable amount of theory information to the boolean level, and it also has several advantages in practice. In fact, it is extremely simple to implement and to update, and it can be interfaced with every propositional core extractor in a plug-and-play manner, so that to benefit for free of all unsat-core reduction techniques which have been or will be made available. We have evaluated our approach by an extensive empirical test on SMT-LIB benchmarks, which confirms the validity and potential of this approach
SAT Modulo Linear Arithmetic for Solving Polynomial
Polynomial constraint solving plays a prominent role in several areas of
hardware and software analysis and verification, e.g., termination proving, program
invariant generation and hybrid system verification, to name a few. In this paper we
propose a new method for solving non-linear constraints based on encoding the problem
into an SMT problem considering only linear arithmetic. Unlike other existing methods,
our method focuses on proving satisfiability of the constraints rather than on proving
unsatisfiability, which is more relevant in several applications as we illustrate with
several examples. Nevertheless, we also present new techniques based on the analysis
of unsatisfiable cores that allow one to efficiently prove unsatisfiability too for a broad
class of problems. The power of our approach is demonstrated by means of extensive
experiments comparing our prototype with state-of-the-art tools on benchmarks taken
both from the academic and the industrial world
Unsatisfiability proofs for distributed clause-sharing SAT solvers
Distributed clause-sharing SAT solvers can solve problems up to one hundred times faster than sequential SAT solvers by sharing derived information among multiple sequential solvers working on the same problem. Unlike sequential solvers, however, distributed solvers have not been able to produce proofs of unsatisfiability in a scalable manner, which has limited their use in critical applications. In this paper, we present a method to produce unsatisfiability proofs for distributed SAT solvers by combining the partial proofs produced by each sequential solver into a single, linear proof. Our approach is more scalable and general than previous explorations for parallel clause-sharing solvers, allowing use on distributed solvers without shared memory. We propose a simple sequential algorithm as well as a fully distributed algorithm for proof composition. Our empirical evaluation shows that for large-scale distributed solvers (100 nodes of 16 cores each), our distributed approach allows reliable proof composition and checking with reasonable overhead. We analyze the overhead and discuss how and where future efforts may further improve performance
Even shorter proofs without new variables
Proof formats for SAT solvers have diversified over the last decade, enabling
new features such as extended resolution-like capabilities, very general
extension-free rules, inclusion of proof hints, and pseudo-boolean reasoning.
Interference-based methods have been proven effective, and some theoretical
work has been undertaken to better explain their limits and semantics. In this
work, we combine the subsumption redundancy notion from (Buss, Thapen 2019) and
the overwrite logic framework from (Rebola-Pardo, Suda 2018). Natural
generalizations then become apparent, enabling even shorter proofs of the
pigeonhole principle (compared to those from (Heule, Kiesl, Biere 2017)) and
smaller unsatisfiable core generation.Comment: 21 page
- …