Efficient Craig Interpolation For Subsets of Integer Linear Arithmetic Himanshu Jain, CMU Edmund M.

Download Report

Transcript Efficient Craig Interpolation For Subsets of Integer Linear Arithmetic Himanshu Jain, CMU Edmund M.

Efficient Craig Interpolation For
Subsets of Integer Linear Arithmetic
Himanshu Jain, CMU
Edmund M. Clarke, CMU
Orna Grumberg, Technion
1
Interpolants [Craig 1957]
Given formulas F, G such that F Æ G is unsatisfiable
An interpolant for (F,G) is a formula I:
1. F ) I
2. I Æ G is unsatisfiable
3. I contains only common variables of F and G
F(x,y)
I(y)
G(y,z)
2
Interpolants Example
Example 1 (propositional logic):
F := p Æ q
G := : q Æ r Æ s
I := q
Example 2 (linear arithmetic):
F := x + 2y ≤ 3 Æ –x - y ≤ -1
G := y ≥ 3
I := y ≤ 2
F)y≤2
3
Interpolants in Verification [McMillan 2003]
Useful in symbolic model checking
Interpolant
based image
S
Reach1(S)
Computing Reach1(S) requires existential
quantification (costly using BDDs or SAT)
4
Interpolants in Verification [Jhala et al. 2004]
Useful for Property Directed Invariant Generation
Program P
Predicates S
Predicate
Abstraction
Invariants for
P expressible
in terms of S
Interpolants help in finding right set of predicates
5
How are Interpolants Obtained
FÆG
proof of
unsatisfiability
of F Æ G
F, G
Interpolant for (F, G)
6
Existing Work on Computing Interpolants
Pudlak, McMillan, Jhala et al., Yorsh et al., Kapur et al.,
Rybalchenko et al., Kroening et al., Cimatti et al., Beyer et al.
Can efficiently compute interpolants
For rational/real linear arithmetic
For equality with uninterpreted function symbols
Propositional logic (using SAT solvers)
No efficient interpolation algorithms for
Integer linear arithmetic
Bit-vector arithmetic
Decision problem for conjunctions is itself NP-hard
We make progress in this direction.
Difference between rational
and integer linear arithmetic
Let H := x=2y Æ x=2z+1
If x, y, z are rational variables
H is satisfiable (take x=1,y=1/2, z=0)
If x, y, z are integer variables
H is unsatisfiable
7
8
Our results
Polynomial time interpolation algorithms
For useful subsets of integer linear arithmetic
Integer (Diophantine) linear equations
E.g. x = 3y Æ 5x = 3z+u+2 Æ …
Integer linear congruences (modular equations)
E.g. 4x = 2y + 9 (mod 3) Æ 2z + 5x –y = 7 (mod 4) Æ …
Integer linear equations and disequations
E.g. : (4x + 5y = 8) Æ x = 3y Æ …
9
Outline
Introduction
Craig Interpolation
New interpolation algorithms
Related Work
Integer Linear Equations
Integer Linear Congruences
Integer Linear Equations+Disequations
Experimental results
We will only give intuition and examples in the talk. See
paper for precise description of results.
10
Interpolation for Integer Linear Equations
F, G be conjuctions of integer linear equations
We show that interpolant for (F,G) is always:
An integer linear equation or
An integer linear congruence
F := (x = 2y) and G := (x=2z+1)
An interpolant is x = 0 (mod 2)
11
Interpolation Algorithm Step 1
Obtain a proof of unsatisfiability of F Æ G
(How to get a contradiction from F Æ G)
F := (30 x + 4y
= 2)
G := (
y + 5z = 2)
[1/5, 1/5]
1/5 F + 1/5 G is equal to
6x+y+z=4/5 (Contradiction)
12
Interpolation Algorithm Step 2
Sum the equations from F according to
the proof of unsatisfiability
F
G
1/5 (30 x + 4y = 2) + 1/5 (y + 5z = 2)
We do not
want x
6 x + 4/5 y = 2/5
Partial interpolant
13
Interpolation Algorithm Step 3
Remove variables not common to F and G
6 x + 4/5 y = 2/5
4/5 y -2/5 = -6x
) 4/5 y – 2/5 is divisible by 6
) 4/5 y – 2/5 = 0 (mod 6)
) 4y-2=0 (mod 30)
4y - 2 = 0 (mod 30) is an interpolant for (F, G)
We have proved the correctness of above algorithm
14
Complexity of the Algorithm
Obtain proof of unsatisfiability (step 1)
Polynomial time using Hermite Normal Form
Overall algorithm is polynomial time
Can also use modern SMT solvers
Multiple interpolants can be obtained
15
Multiple Interpolants
G := y+5z=2
F := 30x+4y=2
4y – 2 = 0 (mod 10)
4y – 2 = 0 (mod 30)
4y – 2 = 0 (mod 15)
4y – 2 = 0 (mod 5)
16
Outline
Introduction
Craig Interpolation
New interpolation algorithms
Related Work
Integer Linear Equations
Integer Linear Congruences
Integer Linear Equations+Disequations
Experimental results
17
Integer Linear Congruences
a = b (mod m) iff m divides (a-b)
a, b, m can be rational numbers
Integer Linear Congruence: i ai xi = b (mod m)
xi are integer variables
Example: 3x+2y+5z = 0 (mod 6)
SATISFIABLE (x=2,y=0,z=0)
18
Interpolation for Integer Linear Congruences
F, G be conjuctions of integer linear congruences
We show that interpolant for (F,G) is always:
An integer linear congruence
Basic steps same as before
Proof of unsatisfiability is more interesting
19
Proof of Unsatisfiability
Congruences may not hold with rational
multipliers
9 = 5 (mod 2). But 9/4 ≠ 5/4 (mod 2)
We show get a proof of unsatisfiability
With integer multipliers for equations
Congruence hold with integer multipliers
20
Proof of Unsatisfiability for Congruences
2x + 2y = 4 (mod 8) Æ
2 (2x + 2y = 4) (mod 8) +
2x + y = 4 (mod 8) Æ
-4 (2x + y = 4) (mod 8) +
4x
1 (4x
= 4 (mod 8)
0
= 4) (mod 8)
= -4 (mod 8)
Both proofs of unsatisfiability and (multiple) interpolants
can be obtained in polynomial time
21
Outline
Introduction
Craig Interpolation
New interpolation algorithms
Related Work
Integer Linear Equations
Integer Linear Congruences
Integer Linear Equations+Disequations
Experimental results
22
Integer Linear Equations + Disequations
Example: (x+2y+z=1) Æ :(x=1) Æ …
All integer variables
Let F = Feq Æ Fneq
We show F has no integral solution iff
F has no rational solution, OR
Feq has no integral solution
Interpolation for Integer
Linear Equations + Disequations
Given F = Feq Æ Fneq , G = Geq Æ Gneq , F Æ G is unsat
1.
F Æ G has no rational solution
 Interpolant as integer linear eqn/disequation
2. Feq Æ Geq has no integral solution
 Interpolant as integer linear eqn/congruence
23
24
Outline
Introduction
Craig Interpolation
New interpolation algorithms
Related Work
Integer Linear Equations
Integer Linear Congruences
Integer Linear Equations+Disequations
Experimental results
25
Predicate Discovery
void main()
{
int x=0, y=0;
while(*)
{
x = x + 4*nondet();
y = y + 8*nondet();
}
}
assert(x+y != 1);
assert(x+y != 2);
assert(x+y != 3);
C program
Loop invariant:
x+y is divisible by 4
That is, x+y=0 (mod 4)
Such predicates can be
found using our
interpolation algorithms
Existing state-of-the-art tools such as
BLAST, SATABS, VCEGAR cannot verify
these programs.
Predicate Discovery Experiments
the help of predicates found by
Example With
Predicates/Interpolants
Time
our algorithms they can (VCEGAR).
(secs)
ex1
y = 1 (mod 2)
2.72
ex2
x + y = 0 (mod 2)
0.83
ex4
x + y + z = 0 (mod 4)
0.95
ex5
x=0 (mod 4), y=0 (mod 4)
1.1
ex6
4x+2y+z = 0 (mod 8)
0.93
ex7
4x-2y+z = 0 (mod 222)
0.54
forb1
x + y = 0 (mod 3)
0.1
26
27
Conclusion
Efficient Interpolation Algorithms
Integer linear equations
Integer linear congruences
Integer linear equations and disequations
Easy to implement
Proofs of unsatisfiability
Integer linear congruences
Integer linear equations and disequations
28
Future Work
Full integer linear arithmetic
 Cutting-plane proofs/Pudlak’s algorithm
Bit-vector arithmetic
Boolean Combinations using SMT
29
Questions