Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers

Similar documents
THEORY OF LINEAR AND INTEGER PROGRAMMING

JPF SE: A Symbolic Execution Extension to Java PathFinder

DM545 Linear and Integer Programming. Lecture 2. The Simplex Method. Marco Chiarandini

Integer Programming as Projection

Array Dependence Analysis as Integer Constraints. Array Dependence Analysis Example. Array Dependence Analysis as Integer Constraints, cont

Integer Programming for Array Subscript Analysis

Math 414 Lecture 2 Everyone have a laptop?

Integer and Combinatorial Optimization

POLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if

Theory of Integers. CS389L: Automated Logical Reasoning. Lecture 13: The Omega Test. Overview of Techniques. Geometric Description

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg

Review for Mastery Using Graphs and Tables to Solve Linear Systems

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Linear Programming in Small Dimensions

Deductive Methods, Bounded Model Checking

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

Some Advanced Topics in Linear Programming

Integer Programming Theory

Graphical Methods in Linear Programming

3 INTEGER LINEAR PROGRAMMING

3 No-Wait Job Shops with Variable Processing Times

30. Constrained Optimization

Mathematical and Algorithmic Foundations Linear Programming and Matchings

Data Dependences and Parallelization

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

LP Geometry: outline. A general LP. minimize x c T x s.t. a T i. x b i, i 2 M 1 a T i x = b i, i 2 M 3 x j 0, j 2 N 1. where

LP-Modelling. dr.ir. C.A.J. Hurkens Technische Universiteit Eindhoven. January 30, 2008

New techniques for linear arithmetic: cubes and equalities

Finite Math Linear Programming 1 May / 7

FACES OF CONVEX SETS

NOTATION AND TERMINOLOGY

CS671 Parallel Programming in the Many-Core Era

Linear Programming and its Applications

Section Notes 5. Review of Linear Programming. Applied Math / Engineering Sciences 121. Week of October 15, 2017

5.3 Cutting plane methods and Gomory fractional cuts

Stable sets, corner polyhedra and the Chvátal closure

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 36

Validity Checking for Finite Automata over Linear Arithmetic Constraints

Lecture 2 - Introduction to Polytopes

1 Elementary number theory

Linear programming and duality theory

Chapter 15 Introduction to Linear Programming

Algorithms for Decision Support. Integer linear programming models

Solving Linear Constraints over Real. German Vitaliy Jr. Researcher Glushkov Institute of Cybernetic NAS Ukraine

Lecture notes on the simplex method September We will present an algorithm to solve linear programs of the form. maximize.

Discrete Optimization 2010 Lecture 5 Min-Cost Flows & Total Unimodularity

Computational Integer Programming. Lecture 12: Branch and Cut. Dr. Ted Ralphs

MATH 890 HOMEWORK 2 DAVID MEREDITH

A Generic Separation Algorithm and Its Application to the Vehicle Routing Problem

Artificial Intelligence

Optimization Problems Under One-sided (max, min)-linear Equality Constraints

Solutions for Operations Research Final Exam

Triangle Rasterization

4 LINEAR PROGRAMMING (LP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

February 19, Integer programming. Outline. Problem formulation. Branch-andbound

Chapter 4 Concepts from Geometry

Lesson 17. Geometry and Algebra of Corner Points

Formalization of Incremental Simplex Algorithm by Stepwise Refinement

Experiments On General Disjunctions

Integer Programming ISE 418. Lecture 7. Dr. Ted Ralphs

The Barcelogic SMT Solver

Decision Procedures for Recursive Data Structures with Integer Constraints

Yices 1.0: An Efficient SMT Solver

Combinatorial Geometry & Topology arising in Game Theory and Optimization

16.410/413 Principles of Autonomy and Decision Making

Linear Programming Terminology

Lecture 3. Corner Polyhedron, Intersection Cuts, Maximal Lattice-Free Convex Sets. Tepper School of Business Carnegie Mellon University, Pittsburgh

Outline. CS38 Introduction to Algorithms. Linear programming 5/21/2014. Linear programming. Lecture 15 May 20, 2014

Roundoff Errors and Computer Arithmetic

Introduction to Algorithms Third Edition

Gift Wrapping for Pretropisms

BCN Decision and Risk Analysis. Syed M. Ahmed, Ph.D.

[Draft. Please do not distribute] Online Proof-Producing Decision Procedure for Mixed-Integer Linear Arithmetic

Linear Programming Duality and Algorithms

Verifying C & C++ with ESBMC

Rectangular Matrix Multiplication Revisited

Math 5593 Linear Programming Lecture Notes

Lecture 4: Linear Programming

Convex Geometry arising in Optimization

Circuit Walks in Integral Polyhedra

George B. Dantzig Mukund N. Thapa. Linear Programming. 1: Introduction. With 87 Illustrations. Springer

The Challenges of Non-linear Parameters and Variables in Automatic Loop Parallelisation

5 The Theory of the Simplex Method

MVE165/MMG631 Linear and integer optimization with applications Lecture 9 Discrete optimization: theory and algorithms

Simulation. Lecture O1 Optimization: Linear Programming. Saeed Bastani April 2016

Target Cuts from Relaxed Decision Diagrams

Decision Procedures in the Theory of Bit-Vectors

Math 273a: Optimization Linear programming

arxiv: v1 [math.co] 15 Dec 2009

Term Algebras with Length Function and Bounded Quantifier Elimination

Systems of Inequalities

11 Linear Programming

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

The Simplex Algorithm

Fundamentals of Integer Programming

Efficient Synthesis of Production Schedules by Optimization of Timed Automata

Graphing Linear Inequalities in Two Variables.

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms

Action Language Verifier, Extended

Transcription:

Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers Isil Dillig, Thomas Dillig, and Alex Aiken Computer Science Department Stanford University

Linear Arithmetic over Integers Problem: Given an m n matrix A with only integer entries, and a vector b Z n, does have any integer solutions? A x b

Linear Arithmetic over Integers Problem: Given an m n matrix A with only integer entries, and a vector b Z n, does have any integer solutions? Geometric interpretation: Are there any integer points inside the polyhedron defined by A x b? A x b

Why is This an Important Problem? Many applications in software verification, compiler optimizations, and model checking require determining the satisfiability of a system of linear integer inequalities.

Why is This an Important Problem? Many applications in software verification, compiler optimizations, and model checking require determining the satisfiability of a system of linear integer inequalities. Verifying buffer accesses: Is integer i used as an index in the range of the buffer?

Why is This an Important Problem? Many applications in software verification, compiler optimizations, and model checking require determining the satisfiability of a system of linear integer inequalities. Verifying buffer accesses: Is integer i used as an index in the range of the buffer? Array dependence analysis: Can a[i] and a[j] refer to the same memory location?

Why is This an Important Problem? Many applications in software verification, compiler optimizations, and model checking require determining the satisfiability of a system of linear integer inequalities. Verifying buffer accesses: Is integer i used as an index in the range of the buffer? Array dependence analysis: Can a[i] and a[j] refer to the same memory location? Integer overflow checking, RTL-datapath verification,...

Existing Techniques Simplex-based Approaches: The Omega Test: Automata-based Approaches:

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. The Omega Test: Extends the Fourier-Motzkin variable elimination technique for reals to integers.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. The Omega Test: Extends the Fourier-Motzkin variable elimination technique for reals to integers. Eliminates variables one by one until the problem becomes infeasible or no variables are left.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. The Omega Test: Extends the Fourier-Motzkin variable elimination technique for reals to integers. Eliminates variables one by one until the problem becomes infeasible or no variables are left. Automata-based Approaches: Encode the linear inequality system as an automaton.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. The Omega Test: Extends the Fourier-Motzkin variable elimination technique for reals to integers. Eliminates variables one by one until the problem becomes infeasible or no variables are left. Automata-based Approaches: Encode the linear inequality system as an automaton. System is satisfiable if the language accepted by the automaton is non-empty.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. This Talk A new approach for finding better additional constraints to find an integer solution.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. This Talk A new approach for finding better additional constraints to find an integer solution. Performs orders of magnitude better than existing approaches.

Existing Techniques Simplex-based Approaches: Use Simplex to obtain a real-valued solution No real solution no integer solution Simplex yields integer solution integer solution exists Otherwise, add additional constraints and repeat. This Talk A new approach for finding better additional constraints to find an integer solution. Performs orders of magnitude better than existing approaches. Complete, i.e., guaranteed to find an integer solution if one exists.

Motivating Example Consider the system: 3x + 3y + z 1 3x 3y + z 2 z = 0

Motivating Example Consider the system: Projection of this system onto the xy plane: y 3x + 3y + z 1 3x 3y + z 2 z = 0 1 3x-3y=1 3x-3y=2 0 1 x

Motivating Example Consider the system: Projection of this system onto the xy plane: y 3x + 3y + z 1 3x 3y + z 2 z = 0 1 3x-3y=1 3x-3y=2 0 1 x This system has no integer solutions.

How Do Existing Simplex-Based Approaches Deal with this Example? The simplest and most common Simplex-based technique is branch and bound.

How Do Existing Simplex-Based Approaches Deal with this Example? The simplest and most common Simplex-based technique is branch and bound. Since our algorithm can be seen as a generalization of branch and bound, we will first illustrate this technique.

How Do Existing Simplex-Based Approaches Deal with this Example? The simplest and most common Simplex-based technique is branch and bound. Since our algorithm can be seen as a generalization of branch and bound, we will first illustrate this technique. If Simplex yields a solution with fractional component f i, branch and bound solves two subproblems: A x b {x i f i }

How Do Existing Simplex-Based Approaches Deal with this Example? The simplest and most common Simplex-based technique is branch and bound. Since our algorithm can be seen as a generalization of branch and bound, we will first illustrate this technique. If Simplex yields a solution with fractional component f i, branch and bound solves two subproblems: A x b {x i f i } A x b {x i f i }

Example Using Branch and Bound For instance, suppose Simplex yields the solution ( ) 1 (x, y, z) = 3, 0, 0 1 y 3x-3y=1 3x-3y=2 for the previous problem. 0 1 x

Example Using Branch and Bound For instance, suppose Simplex yields the solution ( ) 1 (x, y, z) = 3, 0, 0 1 y 3x-3y=1 3x-3y=2 for the previous problem. 0 1 x

Example Using Branch and Bound Branch and bound constructs two subproblems with additional constraints x 0 and x 1 y x 0 1 0 x 1 1 3x-3y=1 3x-3y=2 x

Example Using Branch and Bound For the subproblem where x 1, we obtain a new solution (x, y, z) = (1, 23 ), 0 y x 0 1 x 1 3x-3y=1 3x-3y=2 0 1 x

Example Using Branch and Bound For the subproblem where x 1, we obtain a new solution (x, y, z) = (1, 23 ), 0 y x 0 1 x 1 3x-3y=1 3x-3y=2 0 1 x

Example Using Branch and Bound y x 0 Now branch and bound y 1 1 constructs another two new subproblems with additional constraints y 1 and y 0, but the solution is still fractional. y 0 0 1 x 1 3x-3y=1 3x-3y=2 x

Example Using Branch and Bound y x 0 In fact, by only adding planes parallel to the x and y planes, branch and bound will never exclude the entire space and will keep obtaining more and more 1 y 1 fractional solutions. 0 y 0 1 x 1 3x-3y=1 3x-3y=2 x

Example Using Branch and Bound y x 0 While bounds on x and y y 1 1 can be computed to make it terminate, these bounds are extremely large, making branch and bound impractical on its own. y 0 0 1 x 1 3x-3y=1 3x-3y=2 x

The Problem with Branch and Bound Branch and bound only excludes a single fractional point from the solution space.

The Problem with Branch and Bound Branch and bound only excludes a single fractional point from the solution space. But this fractional point might lie on a k-dimensional subspace not containing integer points.

The Problem with Branch and Bound Branch and bound only excludes a single fractional point from the solution space. But this fractional point might lie on a k-dimensional subspace not containing integer points. y 1 3x-3y=1 3x-3y=2 The plane 3x 3y = 1 does not contain any integer points. 0 1 x

The Problem with Branch and Bound Branch and bound only excludes a single fractional point from the solution space. But this fractional point might lie on a k-dimensional subspace not containing integer points. y 1 3x-3y=1 3x-3y=2 Similarly, 3x 3y = 2 also does not contain any integer points. 0 1 x

The Problem with Branch and Bound Branch and bound only excludes a single fractional point from the solution space. But this fractional point might lie on a k-dimensional subspace not containing integer points. Insight Instead of excluding individual points on this subspace, we would like to exclude exactly this k-dimensional subspace.

The Problem with Branch and Bound Branch and bound only excludes a single fractional point from the solution space. But this fractional point might lie on a k-dimensional subspace not containing integer points. Insight Instead of excluding individual points on this subspace, we would like to exclude exactly this k-dimensional subspace. Our technique systematically identifies and excludes these higher dimensional subspaces containing no integer points.

Outline of the Cuts-from-Proofs Algorithm I Step 1: When Simplex yields a fractional solution, identify the defining constraints of this vertex.

Outline of the Cuts-from-Proofs Algorithm I Step 1: When Simplex yields a fractional solution, identify the defining constraints of this vertex. Defining constraints of a vertex v are the subset of the inequalities given by A x b that v satisfies as an equality.

Outline of the Cuts-from-Proofs Algorithm I Step 1: When Simplex yields a fractional solution, identify the defining constraints of this vertex. Defining constraints of a vertex v are the subset of the inequalities given by A x b that v satisfies as an equality. These exist because Simplex always returns points that lie on the boundary of the polyhedron defined by A x b.

Outline of the Cuts-from-Proofs Algorithm I Step 1: When Simplex yields a fractional solution, identify the defining constraints of this vertex. Defining constraints of a vertex v are the subset of the inequalities given by A x b that v satisfies as an equality. These exist because Simplex always returns points that lie on the boundary of the polyhedron defined by A x b. y 3x + 3y + z 1 is a 1 defining constraint of ( 1 3, 0, 0) because 3 1 3 + 3 0 + 0 = 1. 0 1 3x-3y=1 3x-3y=2 x

Outline of the Cuts-from-Proofs Algorithm II Step 2: Determine whether the intersection A x = b of the defining constraints contains any integer points. Can be done efficiently.

Outline of the Cuts-from-Proofs Algorithm II Step 2: Determine whether the intersection A x = b of the defining constraints contains any integer points. Can be done efficiently. Step 3a: If the intersection does contain integer points, perform conventional branch and bound.

Outline of the Cuts-from-Proofs Algorithm II Step 2: Determine whether the intersection A x = b of the defining constraints contains any integer points. Can be done efficiently. Step 3a: If the intersection does contain integer points, perform conventional branch and bound. There may be integer points within the feasible region that lie on this intersection.

Outline of the Cuts-from-Proofs Algorithm III Idea: If the intersection of defining constraints does not contain integer solutions, we want to identify the smallest subset of the defining constraints whose intersection does not contain integer solutions. Smallest subset Highest dimensional subspace

Outline of the Cuts-from-Proofs Algorithm IV Step 3b: If the intersection of defining constraints does not contain an integer point, compute a proof of unsatisfiability and branch around this proof.

Outline of the Cuts-from-Proofs Algorithm V A proof of unsatisfiability P for a system of linear equalities A x = b is a plane such that:

Outline of the Cuts-from-Proofs Algorithm V A proof of unsatisfiability P for a system of linear equalities A x = b is a plane such that: 1 it does not contain any integer points

Outline of the Cuts-from-Proofs Algorithm V A proof of unsatisfiability P for a system of linear equalities A x = b is a plane such that: 1 it does not contain any integer points 2 it is implied by A x = b

Outline of the Cuts-from-Proofs Algorithm V A proof of unsatisfiability P for a system of linear equalities A x = b is a plane such that: 1 it does not contain any integer points 2 it is implied by A x = b Branching around this proof plane ensures that we exclude at least the intersection of the defining constraints.

Outline of the Cuts-from-Proofs Algorithm V A proof of unsatisfiability P for a system of linear equalities A x = b is a plane such that: 1 it does not contain any integer points 2 it is implied by A x = b Branching around this proof plane ensures that we exclude at least the intersection of the defining constraints. Result: If there is a smaller subset of the defining constraints whose intersection has no integer solution, we will obtain a proof of unsatisfiability for this higher-dimensional intersection in a finite number of steps.

Hermite Normal Forms We can determine whether the defining constraints A x = b have an integer solution and also compute proofs of unsatisfiability efficiently (in polynomial time) by using the Hermite Normal Form of A. Charles Hermite (1822-1901)

Determining whether Defining Constraints Have Integer Solutions Compute H, the Hermite normal form of A, and H 1.

Determining whether Defining Constraints Have Integer Solutions Compute H, the Hermite normal form of A, and H 1. A x = b

Determining whether Defining Constraints Have Integer Solutions Compute H, the Hermite normal form of A, and H 1. H 1 A x = H 1 b

Determining whether Defining Constraints Have Integer Solutions Compute H, the Hermite normal form of A, and H 1. H 1 A x = H 1 b Important property: H 1 A is always integral.

Determining whether Defining Constraints Have Integer Solutions Compute H, the Hermite normal form of A, and H 1. H 1 A x = H 1 b Important property: A x = b has integer solutions H 1 b integral.

Computing Proofs of Unsatisfiability r 1... r i... r m } {{ } H 1 A x = c 1... c i... c m }{{} H 1 b

Computing Proofs of Unsatisfiability r 1... a 1... a n... r m } {{ } H 1 A x = c 1... n i d i... c m }{{} H 1 b

Computing Proofs of Unsatisfiability r 1... a 1... a n... r m } {{ } H 1 A Proof of Unsatisfiability A proof of unsatisfiability of A x = b is: x = a 1 d i x 1 +... + a n d i x n = n i c 1... n i d i... c m }{{} H 1 b

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v.

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v. Compute the greatest common divisor g = gcd(a 1,..., a n ).

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v. Compute the greatest common divisor g = gcd(a 1,..., a n ). Then, the closest planes parallel to and on either side of Σa i x i = c i containing integer points are: Σ(a i /g)x i = c i /g and Σ(a i /g)x i = c i /g

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v. Compute the greatest common divisor g = gcd(a 1,..., a n ). Then, the closest planes parallel to and on either side of Σa i x i = c i containing integer points are: Σ(a i /g)x i = c i /g and Σ(a i /g)x i = c i /g y Projection of planes containing integer points on either side of 3x 3y = 1 1 x-y 0 3x-3y=1 x-y 1 0 1 x

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v. Compute the greatest common divisor g = gcd(a 1,..., a n ). Branching around the proof of unsatisfiabilty means solving the two subproblems:

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v. Compute the greatest common divisor g = gcd(a 1,..., a n ). Branching around the proof of unsatisfiabilty means solving the two subproblems: A x b {Σ(a i /g)x i c i /g }

Branching around Proofs of Unsatisfiability Let P = Σa i x i = c i be a proof of unsatisfiability for the defining constraints of a vertex v. Compute the greatest common divisor g = gcd(a 1,..., a n ). Branching around the proof of unsatisfiabilty means solving the two subproblems: A x b {Σ(a i /g)x i c i /g } A x b {Σ(a i /g)x i c i /g }

Cuts-from-Proofs Example y Consider the vertex ( 1 3, 0, 0) and its defining constraints: z = 0 3x + 3y + z = 1 1 3x-3y=1 3x-3y=2 0 1 x

Cuts-from-Proofs Example y The system A x = b is: [ ] [ 0 0 1 0 x = 3 3 1 1 ] 1 3x-3y=1 3x-3y=2 0 1 x

Cuts-from-Proofs Example Multiply both sides by H 1 : [ ] [ 1 3 0 0 0 1 3 [ 2 1 ] [ 3 ] 3 1 = 1 3 0 0 3 2 1 1 ] x 1 y 0 3x-3y=1 1 3x-3y=2 x

Cuts-from-Proofs Example Here, H 1 A x = H 1 b is: [ ] [ ] 0 0 1 0 x = 1 1 1 1 3 1 y 3x-3y=1 3x-3y=2 0 1 x

Cuts-from-Proofs Example Here, H 1 A x = H 1 b is: [ ] [ ] 0 0 1 0 x = 1 1 1 1 3 Therefore 3x + 3y + 3z = 1 is a proof of unsatisfiability. 0 1 1 y 3x-3y=1 3x-3y=2 x

Cuts-from-Proofs Example y The planes closest to and on either side of the proof plane 3x + 3y + 3z = 1 are: x + y + z = 1 x + y + z = 0 1 0 x-y 0 3x-3y=1 1 3x-3y=2 x-y 1 x

Cuts-from-Proofs Example y Therefore, the Cuts-from-Proofs algorithm solves the two subproblems shown in the figure. 1 x-y 0 3x-3y=1 3x-3y=2 x-y 1 0 1 x

Cuts-from-Proofs Example y Neither subproblem has a real-valued solution, therefore Cuts-from-Proofs terminates in just one step. 1 x-y 0 3x-3y=1 3x-3y=2 x-y 1 0 1 x

Completeness To guarantee completeness, it is necessary to restrict the coefficients allowed in the proofs of unsatisfiability to a maximum constant α n a max n is the number of variables and a max the maximum absolute value of coefficients in the original matrix A.

Completeness To guarantee completeness, it is necessary to restrict the coefficients allowed in the proofs of unsatisfiability to a maximum constant α n a max n is the number of variables and a max the maximum absolute value of coefficients in the original matrix A. This is necessary to prevent the volume cut by a proof of unsatisfiability from becoming infinitesimally small over time.

Completeness To guarantee completeness, it is necessary to restrict the coefficients allowed in the proofs of unsatisfiability to a maximum constant α n a max n is the number of variables and a max the maximum absolute value of coefficients in the original matrix A. This is necessary to prevent the volume cut by a proof of unsatisfiability from becoming infinitesimally small over time. The constant n a max ensures that if all the proofs of unsatisfiability with coefficients less than or equal to n a max are added, the system will either become infeasible or it contains integer points.

Experiments We compare the performance of the Cuts-from-Proofs algorithm against the top four competitors of SMT-COMP 08: Z3, Yices, MathSAT, and CVC3.

Experiments We compare the performance of the Cuts-from-Proofs algorithm against the top four competitors of SMT-COMP 08: Z3, Yices, MathSAT, and CVC3. Among these tools, Z3 and Yices use the Simplex-based branch-and-cut algorithm, which is a combination of branch and bound and Gomory s cutting planes method.

Experiments We compare the performance of the Cuts-from-Proofs algorithm against the top four competitors of SMT-COMP 08: Z3, Yices, MathSAT, and CVC3. Among these tools, Z3 and Yices use the Simplex-based branch-and-cut algorithm, which is a combination of branch and bound and Gomory s cutting planes method. CVC3 uses the Omega Test.

Experiments We compare the performance of the Cuts-from-Proofs algorithm against the top four competitors of SMT-COMP 08: Z3, Yices, MathSAT, and CVC3. Among these tools, Z3 and Yices use the Simplex-based branch-and-cut algorithm, which is a combination of branch and bound and Gomory s cutting planes method. CVC3 uses the Omega Test. MathSAT uses a combination of branch-and-cut and the Omega test.

Experiments We compare the performance of the Cuts-from-Proofs algorithm against the top four competitors of SMT-COMP 08: Z3, Yices, MathSAT, and CVC3. Among these tools, Z3 and Yices use the Simplex-based branch-and-cut algorithm, which is a combination of branch and bound and Gomory s cutting planes method. CVC3 uses the Omega Test. MathSAT uses a combination of branch-and-cut and the Omega test. We did not compare against tools specialized in mixed integer-linear programming, such as CPLEX and GLPK because they do not support infinite precision arithmetic and yield unsound results.

Implementation Cuts-from-Proofs is implemented as part of the Mistral constraint solver.

Implementation Cuts-from-Proofs is implemented as part of the Mistral constraint solver. Mistral implements the combined theory of linear integer arithmetic and uninterpreted functions.

Implementation Cuts-from-Proofs is implemented as part of the Mistral constraint solver. Mistral implements the combined theory of linear integer arithmetic and uninterpreted functions. Mistral is used to solve large arithmetic constraints that arise from analyzing unbounded data structures like arrays.

Implementation Cuts-from-Proofs is implemented as part of the Mistral constraint solver. Mistral implements the combined theory of linear integer arithmetic and uninterpreted functions. Mistral is used to solve large arithmetic constraints that arise from analyzing unbounded data structures like arrays. Implementation utilizes an infinite precision arithmetic library based on GNU MP

Implementation Cuts-from-Proofs is implemented as part of the Mistral constraint solver. Mistral implements the combined theory of linear integer arithmetic and uninterpreted functions. Mistral is used to solve large arithmetic constraints that arise from analyzing unbounded data structures like arrays. Implementation utilizes an infinite precision arithmetic library based on GNU MP Performs computation natively on 64-bit values

Implementation Cuts-from-Proofs is implemented as part of the Mistral constraint solver. Mistral implements the combined theory of linear integer arithmetic and uninterpreted functions. Mistral is used to solve large arithmetic constraints that arise from analyzing unbounded data structures like arrays. Implementation utilizes an infinite precision arithmetic library based on GNU MP Performs computation natively on 64-bit values But switches to infinite precision representation when overflow is detected.

Experiments Average running time (seconds) 1200 1000 800 600 400 200 Mistral Yices Z3 MathSAT CVC3 0 10 15 20 25 30 35 40 45 Number of variables Number of variables vs. average running time. All systems are randomly generated inequalities with fixed coefficient size.

Experiments Average running time (seconds) 1200 1000 800 600 400 200 Mistral Yices Z3 MathSAT CVC3 345s 3.47s 0 10 15 20 25 30 35 40 45 Number of variables Number of variables vs. average running time. All systems are randomly generated inequalities with fixed coefficient size.

Experiments 100 80 Success rate (%) 60 40 Mistral 20 Yices Z3 MathSAT CVC3 0 10 15 20 25 30 35 40 45 Number of variables Number of variables vs. percent of successful runs. All systems are randomly generated inequalities with fixed coefficient size.

Experiments 100 80 100% Success rate (%) 60 40 36% Mistral 20 Yices Z3 MathSAT CVC3 0 10 15 20 25 30 35 40 45 Number of variables Number of variables vs. percent of successful runs. All systems are randomly generated inequalities with fixed coefficient size.

Experiments Average running time in log scale (seconds) 1000 100 10 1 Mistral 0.1 Yices Z3 MathSAT CVC3 0.01 10 20 30 40 50 60 70 80 90 100 Maximum Coefficient Size (10 variables, 20 inequalities) Maximum coefficient vs. average running time for a 10x20 system.

Any Questions?

Related Work Pugh, W.: The Omega Test: A Fast and Practical Integer Programming Algorithm for Dependence Analysis. Communications of the ACM (1992) Ganesh, V., Berezin, S., Dill, D.: Deciding Presburger Arithmetic by Model Checking and Comparisons with Other Methods. In: FMCAD 02: Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design, London, UK, Springer-Verlag (2002) 171 186 Nemhauser, G.L., Wolsey, L.: Integer and Combinatorial Optimization. John Wiley & Sons (1988) Storjohann, A., Labahn, G.: Asymptotically Fast Computation of Hermite Normal Forms of Integer Matrices. In: Proc. Int l. Symp. on Symbolic and Algebraic Computation: ISSAC 96, ACM Press (1996) 259 266 Jain, H., Clarke, E., Grumberg, O.: Efficient Craig Interpolation for Linear Diophantine (Dis)equations and Linear Modular Equations. In: CAV 08, Berlin, Heidelberg, Springer-Verlag (2008) 254 267