Interpolation: Theory and Applications

Interpolation: Theory and
Applications
Vijay D’Silva
Google Inc., San Francisco
SAT/SMT Summer School 2015
1
Conceptual Overview
2
A Brief History of Interpolation
3
Interpolant Construction
4
Verification with Interpolants
1
Conceptual Overview
2
A Brief History of Interpolation
3
Interpolant Construction
4
Verification with Interpolants
Craig Interpolants
B
For two formulae A and B such that A implies
B, a Craig interpolant is a formula I such that
1. A implies I, and
I
2. I implies B, and
3. the non-logical symbols in I occur in A
and in B.
A
P ^ (P =) Q)
=) Q =)
R =) Q
Craig Interpolants
B
For two formulae A and B such that A implies
B, a Craig interpolant is a formula I such that
1. A implies I, and
I
2. I implies B, and
3. the non-logical symbols in I occur in A
and in B.
A
Logical symbols
P ^ (P =) Q)
=) Q =)
R =) Q
Craig Interpolants
B
For two formulae A and B such that A implies
B, a Craig interpolant is a formula I such that
1. A implies I, and
I
2. I implies B, and
3. the non-logical symbols in I occur in A
and in B.
A
P ^ (P =) Q)
=) Q =)
Non-logical symbols
R =) Q
Craig Interpolants
B
For two formulae A and B such that A implies
B, a Craig interpolant is a formula I such that
1. A implies I, and
I
2. I implies B, and
3. the non-logical symbols in I occur in A
and in B.
A
P ^ (P =) Q)
=) Q =)
Interpolant
R =) Q
Reverse Interpolants or “Interpolants”
B
For a contradiction A ^ B, a reverse interpolant is
a formula I such that
1. A implies I, and
2. I ^ B is a contradiction, and
I
3. the non-logical symbols in I occur in A and
in B.
A
Note: In classical logic, A =) B is valid exactly
if A ^ ¬B is a contradiction.
In the verification literature, “interpolant”
usually means to “reverse interplant.”
Examples
B
A
u = x ^ f (u, y) = z
f (x, y) = z
v = y ^ f (x, v) 6= z
f (x, y) 6= z
B
A
xy^y z
xz
x
x>z
z
1
0
Examples
B
A
u = x ^ f (u, y) = z
f (x, y) = z
v = y ^ f (x, v) 6= z
f (x, y) 6= z
Interpolant
B
A
xy^y z
xz
x
x>z
z
1
0
“In terms of reasoning, this is not at all surprising. If A
involves apples and oranges, and B involves apples and
bananas and A implies B, then A ought to imply a
statement that involves only apples and B ought to follow
from a statement that involves only apples. The oranges
should not help and the bananas should not hurt.
So what is the mystery then? The Craig statement is
trickier to prove than one might think. One has to have
the same statement about apples for A and B! ”
-- Alessandra Carbone, Bulletin of the AMS, April ’97
Program Analysis with SAT/SMT Solvers
Program
Property
Constraint
Generation
• Bounded Model Checking and
Symbolic Execution generate
formulae encoding bounded
executions.
• Can we generate invariants?
Formula
• Can we explore deeper executions
without running out of memory?
Solver
UNSAT
SAT
Satisfying
Assignment
• Can we avoid exploring redundant
program paths?
Bounded Execution as a Formula
int x = i;
int y = j;
while (foo()) {
// Code that does not
// modify 'x' or 'y'.
x = y + 1;
y = x + 1;
}
if (i = j && x <= 10)
assert(y <= 10);
int x0= i;
int y0 = j;
x1 = y0 + 1
y1 = x0 + 1;
x2 = y1 + 1
y2 = x1 + 1;
x3 = y2 + 1
y3 = x2 + 1;
if (i = j &&
x3 <= 10) {
if (y3 > 10)
Err:// ERROR
}
Bounded Execution and Interpolants
int x0= i;
int y0 = j;
x1 = y0 + 1
y1 = x0 + 1;
x2 = y1 + 1
y2 = x1 + 1;
x3 = y2 + 1
y3 = x2 + 1;
if (i = j &&
x3 <= 10) {
if (y3 > 10)
Err:// ERROR
}
A
x 2 = i + 2 ^ y2 = j + 2
• Symbolic representation of the states
reachable after two iterations
B
• Image computation typically requires
quantifier elimination
Another Interpolant
int x = i;
int y = j;
while (foo()) {
// Code that does not
// modify 'x' or 'y'.
x = y + 1;
y = x + 1;
}
if (i = j && x <= 10)
assert(y <= 10);
i = j =) x2  y2
• Potential loop invariant
• Invariant computation often requires
fixed point computation, quantifier
elimination, or even both.
A Space of Interpolants
i = j =)
int x0= i;
int y0 = j;
x1 = y0 + 1
y1 = x0 + 1;
x2 = y1 + 1
y2 = x1 + 1;
x3 = y2 + 1
y3 = x2 + 1;
if (i = j &&
x3 <= 10) {
if (y3 > 10)
Err:// ERROR
}
A
x2 = i + 2
^ y2 = j + 2
i = j =)
x 2  y2
y2  x 2
i = j =)
x 2 = y2
B
• Multiple interpolants exist.
• They differ in size, logical strength, symbols, etc.
• They are closed under conjunction/disjunction.
• The ideal one depends on the problem
Approximation of States with Interpolants
States reaching
error in m steps
B
I
A
States on
similar paths
Function
summary
Approximate
k-image
States that enter
and exit a function
States on one
program path
States reachable
in n-steps
The challenge is to encode these constraints and respect the
vocabulary condition
Interpolation Slogans
Program
Property
• A separator between two regions of a
search space
Constraint
Generation
• A summary of why a boundedproperty holds occurs
Formula
Solver
UNSAT
Proofs,
Interpolants
• A poor person’s quantifier elimination
• A syntax-guided form of logical,
semantic approximation
SAT
Satisfying
Assignment
• A relevance heuristic that articulates
the core reason for a proof
1
Conceptual Overview
2
A Brief History of Interpolation
3
Interpolant Construction
4
Verification with Interpolants
Craig’s Interpolation Lemma (1957)
William Craig in 1988
http://sophos.berkeley.edu/interpolations/
Craig’s Interpolation Lemma (1957)
Lemma. First-order logic has the interpolation
property. That is, if A =) B is valid, then a
Craig interpolant exists.
William Craig in 1988
http://sophos.berkeley.edu/interpolations/
A Perspective on the Proof
“The intuitive idea for Craig’s proof of the Interpolation Theorem
rests on the completeness theorem for FOL, in the form of the
equivalence of validity with provability in a suitable system of
axioms and rules of inference. By “suitable” here is meant one in
which there is a notion of a direct proof for which if Φ implies Ψ is
provable then there is a direct proof of Ψ from Φ. One would
expect that in such a proof, the relation symbols of Φ that are in Ψ
would not disappear in the middle. Such systems were devised by
Herbrand (1930) and Gentzen (1934); Hilbert-style systems
enlarged by the axioms and rules of the epsilon-calculus can also
serve this purpose.
Feferman, Harmonious Logic: Craig’s Interpolation Theorem and Its Descendants, 2008
A Perspective on the Interpolation Theorem
“Important results have many things to say. At first sight, the
Interpolation Theorem of Craig (1957) seems a rather technical result for
connoisseurs inside logical meta-theory. But over the past decades, its
broader importance has become clear from many angles. In this paper, I
discuss my own current favourite views of interpolation: no attempt is
made at being fair or representative. First, I discuss the entanglement
of inference and vocabulary that is crucial to interpolation. Next, I
move to the role of interpolants in facilitating generalized inference
across different models. Then I raise the perhaps surprising issue of
‘what is the right formulation of Craig’s Theorem?’, high-lighting the
existence of non-trivial options in formulating meta-theorems.
...
Finally, I discuss the ‘end of history’. Craig’s Theorem is about the last
significant property of first-order logic that has come to light. Is there
something deeper going on here, and if so, can we prove it?”
-- Johan van Benthem, The Many Faces of Interpolation, 2008
Interpolation In Mathematical Logic
1957
1960
1970
1980
1990
2000
2010
• Simpler proofs of known properties: Beth definability, Robinson’s theorem.
• Interpolant structure: Lyndon Interpolation theorems (1959).
• Preservation under homomorphisms (connections to finite-model theory).
• Many-sorted and Infinitary logics: Feferman ’68, ’74, Lopez-Escobar ’65,
Barwise ’69, Stern ’75, Otto ’00.
• Model theoretic characterizations: See Makowsky ’85 for a survey.
• Amalgamation: See Czelakowski and Pigozzi ’95.
• Guarded fragment: Hoogland, Marx, Otto ’00.
• Modal and fixed point logics: Maksimova ’79, ’91, Ten Cate ’05.
• Uniform interpolation: Pitt ’92, Visser ’96, d’Agostino, Hollenberg ’00.
Interpolation In Complexity and Proof Theory
1957
1960
1970
1980
1971
1982
1983
1990
2000
2010
1971, Cook. The Complexity of Theorem Proving Procedures
Mundici, NP and Craig’s Interpolation Theorem (pub. 1984)
Mundici, A Lower bound for the complexity of Craig’s
Interpolants in Sentential Logic
Jan Krajíček, Interpolation theorems, lower bounds for proof
systems, and independence results for bounded arithmetic.
1997
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs
and Monotone Computations
Carbone, Interpolants, Cut Elimination and Flow Graphs for the
Propositional Calculus
Interpolation In Complexity and Proof Theory
1957
1960
1970
1980
1971
Proof Content. For any language A 2 NP and n 2 N, one
can construct in polynomial time
a formula
1982
1983
Fn (x1 , . . . , xn , y1 , . . . , yp(n) )
2000
2010
1971, Cook. The Complexity of Theorem Proving Procedures
Mundici, NP and Craig’s Interpolation Theorem (pub. 1984)
Mundici, A Lower bound for the complexity of Craig’s
Interpolants in Sentential Logic
Jan Krajíček, Interpolation theorems, lower bounds for proof
systems, and independence results for bounded arithmetic.
in propositional logic such that
for all x 2 {0, 1}n
x 2 A () 9y.Fn (x, y) = true
1990
1997
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs
and Monotone Computations
Carbone, Interpolants, Cut Elimination and Flow Graphs for the
Propositional Calculus
Interpolation In Complexity and Proof Theory
1957
1960
1970
1980
1971
Theorem. At least one of the following statements is true.
1982
1990
2000
2010
1971, Cook. The Complexity of Theorem Proving Procedures
Mundici, NP and Craig’s Interpolation Theorem (pub. 1984)
1. P = NP
2. NP 6= coNP
3. If F =) G, for two formulae in propositional logic,
an interpolant I is not,
in general, computable in
time polynomial in the size
of F and G.
1983
Mundici, A Lower bound for the complexity of Craig’s
Interpolants in Sentential Logic
Jan Krajíček, Interpolation theorems, lower bounds for proof
systems, and independence results for bounded arithmetic.
1997
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs
and Monotone Computations
Carbone, Interpolants, Cut Elimination and Flow Graphs for the
Propositional Calculus
Interpolation In Complexity and Proof Theory
1957
1960
1970
1980
1971
1982
1983
1990
2000
2010
1971, Cook. The Complexity of Theorem Proving Procedures
Mundici, NP and Craig’s Interpolation Theorem (pub. 1984)
Mundici, A Lower bound for the complexity of Craig’s
Interpolants in Sentential Logic
Jan Krajíček, Interpolation theorems, lower bounds for proof
systems, and independence results for bounded arithmetic.
Cook and Krajíček, 2008
https://en.wikipedia.org/wiki/
File:Profs_cook_and_krajicek.jpg
1997
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs
and Monotone Computations
Carbone, Interpolants, Cut Elimination and Flow Graphs for the
Propositional Calculus
Interpolation In Complexity and Proof Theory
1957
1960
1970
1980
1971
A proof system ` has feasible
interpolation if whenever there
is a short refutation, the interpolant is polynomial-time computable.
Lemma. If an unsatisfiable
conjunction A ^ B has a refutation of size n, there is an interpolant of circuit size 3n.
1982
1983
1990
2000
2010
1971, Cook. The Complexity of Theorem Proving Procedures
Mundici, NP and Craig’s Interpolation Theorem (pub. 1984)
Mundici, A Lower bound for the complexity of Craig’s
Interpolants in Sentential Logic
Jan Krajíček, Interpolation theorems, lower bounds for proof
systems, and independence results for bounded arithmetic.
1997
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs
and Monotone Computations
Carbone, Interpolants, Cut Elimination and Flow Graphs for the
Propositional Calculus
A. Carbonel Annals of Pure and Applied Logic 83 (1997) 24%299
260
Interpolation In Complexity and Proof Theory
It is easy to see that it describes
the inner proof
D+D
D--+CvD
where we will refer to D --f C V D as inner sequent of A V D + A, C V D.
1957
1960
1970
On the other hand, not all subgraphs
1980
of II induce
1990
a proof. For instance,
consider
2000
2010
the subgraph
1971
A*VE9D+D
D,AvE
-+A,D
D,dvE/+A!CvD
Notice
following
that a given
1982
proof may contain
Mundici, NP and Craig’s Interpolation Theorem (pub. 1984)
more than one inner
very simple proof:
B+B
1971, Cook. The Complexity of Theorem Proving Procedures
1983
proof. Consider
the
Mundici, A Lower bound for the complexity of Craig’s
Interpolants in Sentential Logic
C-+C
A-+A
Jan Krajíček, Interpolation theorems, lower bounds for proof
systems, and independence results for bounded arithmetic.
BvC+B,C
A,B v C + B,A A C
and the two logical flows for it
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs
By*7 and Monotone Computations
1997
A-+A
4=sT/!Y Carbone,
A,BvC
+ B,A AC
Interpolants, Cut Elimination and Flow Graphs for the
Propositional Calculus
Program =
Control + Data
Analyzer =
Constraint
Generation
Solver = Constraint
Solving +
Interpolant
Construction
Property Checking
with Interpolants
Program = Control
+ Data
Construction of Interpolants
1957
1995
2001
1960
1970
1980
1990
Huang, Constructing Craig Interpolation Formulas. (OTTER)
Amir, McIlraith, Partition-Based Logical Reasoning.
2000
Analyzer =
Constraint
Generation
Solver = Constraint
Solving + Interpolant
Construction
2010
2005 to present
Interpolation for theories: numeric,
bit-vectors, strings, arrays, etc.
2003
McMillan, Interpolation and SAT-Based Model Checking.
Interpolation for equality and theory
combinations.
200
Henziger, Jhala,Majumdar,McMillan, Abstractions from Proofs
Quantified interpolants.
2005
McMillan, An Interpolating Theorem Prover
Sequence, tree and DAG
interpolants.
Program = Control
+ Data
Analysis with Interpolants
1957
2003
2004
2006
2009
1960
1970
1980
1990
McMillan, Interpolation and SAT-Based Model Checking.
Analyzer =
Constraint
Generation
2000
Solver = Constraint
Solving + Interpolant
Construction
2010
2006 onwards
Henzinger, Jhala, Majumdar, McMillan, Abstraction from Proofs.
Loops
Interpolant
Sequence
Recursion
Tree Interpolant
Multiple
Paths
DAG Interpolant
Frameworks
Horn Clauses
McMillan, Lazy Abstraction with Interpolants
Vizel, Grumberg, Interpolation-Sequence Based Model Checking
2010
Heizmann, Hoenicke, Podelski, Nested Interpolants
2012
Albarghouthi, Gurfinkel, Chechik, Whale: An Inteprolation-Based
Algorithm for Inter-Procedural Verification
Program = Control
+ Data
Analysis of Interpolants
1957
1960
1970
1980
1990
2000
2006
Jhala, McMillan, A Practical and Complete Approach to Predicate Refinement.
2010
D., Kroening, Purandare, Weissenbacher, Interpolant Strength.
Analyzer =
Constraint
Generation
Solver = Constraint
Solving + Interpolant
Construction
2010
Theory Independent
Propositional Logic
2012
Rollini, Sery, Sharygina. Leveraging Interpolant Strength in Model Checking.
2012
Alberti, Brutomesso, Ghilardi, Ranise, Sharygina, Lazy Abstraction with
Interpolants for Arrays.
Term Abstraction
2013
Albarghouthi, McMillan, Beautiful Interpolants.
Small Interpolants
2013
Ruemmer, Subotic, Exploring Interpolants.
1
Conceptual Overview
2
A Brief History of Interpolation
3
Interpolant Construction
4
Verification with Interpolants
Program =
Control + Data
Analyzer =
Constraint
Generation
Solver =
Constraint Solving
+ Interpolant
Construction
Property Checking
with Interpolants
Program =
Control + Data
Analyzer =
Constraint
Generation
Boolean Structure
Theory
Combination
Theory
Property Checking
with Interpolants
Quantifiers
EUF
Flows in Resolution Proofs
B
A
x
x, y
y, z
y
?y
⇤
> ¬y
• Literals flow around in the
proof
• Literals with opposite polarity
cancel each other
y
y
?
z
>
• Propositional interpolant
construction can be viewed as
controlling initial inputs and
gating the flows using a circuit
• Want to let shared variables
flow through the A-part and
restrict flow from the B-part.
Interpolating Proof Rules
A-Hyp
B-Hyp
C
C
[{` 2 C | var (`) 2 var (B)}]
[>]
[C 2 A]
(C 2 B)
A-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 _ I2 ]
(x 2 var (A) \ var (B))
B-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 ^ I2 ]
(x 2 var (B))
Interpolating Proof Rules
Split rules based on vocabulary
A-Hyp
B-Hyp
C
C
[{` 2 C | var (`) 2 var (B)}]
[>]
[C 2 A]
(C 2 B)
A-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 _ I2 ]
(x 2 var (A) \ var (B))
B-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 ^ I2 ]
(x 2 var (B))
Annotate formulae with Partial Interpolants
Applying Interpolating Proof Rules
a1 a2 [a2 ] a1 a3 [a3 ] a2 a3 [>] a2 a4 [>]
a2 a3 [a2 _ a3 ] a2 [a2 ]
a3 [a3 ^ a2 ]
B = (a2 _ a3 ) ^ (a2 _ a4 ) ^ a4
I = a3 ^ a2
a1 a2 [?]
a2 [>]
a2
a3 [>]
⇤ [a3 ^ a2 ]
A = (a1 _(a)
a2 ) ^McMillan’s
(a1 _ a3 ) ^ a2
a4 [>]
A-Hyp
B-Hyp
C
[C|B ]
C
[>]
A-Res
System
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 _ I2 ]
B-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 ^ I2 ]
McMillan’s Interpolation System
A-Hyp
B-Hyp
C
[{` 2 C | var (`) 2 var (B)}]
C
[>]
[C 2 A]
(C 2 B)
A-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 _ I2 ]
(x 2 var (A) \ var (B))
B-Res
C _ x [I1 ]
C _D
x _ D [I2 ]
[I1 ^ I2 ]
(x 2 var (B))
Theorem. The partial interpolant labelling the empty clause in a
refutation is an interpolant for the formula.
Further Reading: Propositional Interpolants
1995 Huang, Constructing Craig Interpolation Formulas. (OTTER)
1997
Jan Krajíček, Interpolation theorems, lower bounds for proof systems, and
independence results for bounded arithmetic.
1997
Pudlák, Lower Bounds for Resolution and Cutting Plane Proofs and Monotone
Computations
2003 McMillan, Interpolation and SAT-Based Model Checking.
A Symmetric Interpolation
System with three rules
Interpolation system with two
rules
2006 Yorsh, Musuvathi, A Combination Method for Generating Interpolants.
2014
Bonacina, Johansson, Interpolation Systems for Ground Proofs in Automated
Reasoning
Detailed proof for a symmetric
construction.
2009 Biere, Bounded Model Checking (in Handbook of Satisfiability).
Different construction.
2010 D. Kroening, Purandare, Weissenbacher. Interpolant Strength.
Unifies some constructions.
Program =
Control + Data
Analyzer =
Constraint
Generation
Boolean Structure
Theory
Combination
Theory
Property Checking
with Interpolants
Quantifiers
EUF
Equality Proofs
f (u, y) = z
u=x
v=y
f (x, v) 6= z
f (u, y) = f (x, v)
f (u, y) 6= z
⇤
A = u = x ^ f (u, y) = z
• Deduced literals may not be in A or in B.
B = v = y ^ f (x, v) 6= z
• New terms may use non-shared symbols.
I = f (x, y) = z
• Interpolant may be over terms not in the proof.
Proofs Amenable to Interpolation
f (u, y) = z
u=x
v=y
f (x, v) 6= z
f (x, y) = z
f (x, v) = z
⇤
A = u = x ^ f (u, y) = z
• Can restrict how the prover generates literals.
B = v = y ^ f (x, v) 6= z
• Modify the proof after the fact (more flexible).
I = f (x, y) = z
• Use a more complex interpolation system.
Coloured Congruence Graphs
f (u, y) = z
u=x
v=y
f (x, v) 6= z
f (x, y) = z
f (x, v) = z
⇤
z
A = u = x ^ f (u, y) = z
B = v = y ^ f (x, v) 6= z
I = f (x, y) = z
f (u, y)
6=
f (x, v)
f (x, y)
Interpolation from Coloured Congruence Graphs
z
f (u, y)
6=
f (x, v)
f (x, y)
• Modify graph to be colourable
A = u = x ^ f (u, y) = z
B = v = y ^ f (x, v) 6= z
I = f (x, y) = z
• Take summaries A-paths by endpoints that
are over the shared vocabulary
• Summarize B-paths as premises for Asummaries
Interpolation with B-Premises
v
f (z, u)
6=
y
f (z, x)
• Mixes A and B reasoning
A = v = f (z, u) ^ y = f (z, x) • Endpoints of B-reasoning paths are
B = u = x ^ v 6= y
I = u = x =) v = y
antecedents of implications for A
• Implication introduced by combination of
congruence and shared reasoning
Further Reading: Equality Interpolants
1996
Fitting, First-Order Logic and Automated Theorem Proving
Interpolants from sequent-calculus
proofs.
2005
McMillan, An Interpolating Theorem Prover
Interpolation for EUF with no proof
restrictions.
2006
Yorsh, Musuvathi, A Combination Method for Generating
Interpolants.
Equality interpolation as required for
Nelson-Oppen.
2009
Fuchs, Goel, Grundy, Krstic, Tinelli, Ground Interpolation for the
Theory of Equality.
Equality with coloured congruence
closure.
2014
Bonacina, Johansson, Interpolation Systems for Ground Proofs in
Automated Reasoning
Equality interpolation as required for
theory combination.
Program =
Control + Data
Analyzer =
Constraint
Generation
Boolean Structure
Theory
Combination
Theory
Property Checking
with Interpolants
Quantifiers
EUF
Interpolation in Theories
2005
McMillan. Interpolating Theorem Prover
LA(Q)
2006
Kapur, Majumdar, Zarba, Interpolation for Data Structures
Datatype theories
2007
Rybalchenko, Sofronie-Stokkermans, Constraint Solving for Interpolation
LA(Q)
2008
Cimatti, Griggio, Sebastiani, Efficient Interpolant Generation in Satisfiability
Modulo Theories
LA(Q), DL(Q), UTVPI
2008
Jain, Clarke, Grumberg, Efficient Craig Interpolation for Linear Diophantine
(dis)Equations and Linear Modular Equations
LDE, LME
2009
Cimatti, Griggio, Sebastiani, Interpolant Generation for UTVPI
UTVPI
2011
Griggio, Effective Word-Level Interpolation for Software Verification
Bit-Vectors
Program =
Control + Data
Analyzer =
Constraint
Generation
Boolean Structure
Theory
Combination
Theory
Property Checking
with Interpolants
Quantifiers
EUF
Interpolation in Theory Combinations
2005
McMillan. Interpolating Theorem Prover
LA(Q) over EUF over Bool
2005
Yorsh and Musuvathi, A Combination Method for Generating Interpolants
Nelson-Oppen
2009
Cimatti, Griggio, Sebastiani, Efficient Generation of Craig Interpolants in
Satisfiability Modulo Theories
Delayed Theory
Combination
2009
Goel, Krstic, Tinelli, Ground Interpolation for Combined Theories
Proof transformation
2012
Kovacs, Voronkov, Playing in the Gray Area of Proofs
Proof Transformation
1
Conceptual Overview
2
A Brief History of Interpolation
3
Interpolant Construction
4
Verification with Interpolants
5
Current Research
Data Types
Conditionals/
Assignments
Loops
Recursion
Analyzer =
Constraint
Generation
Boolean Structure
Theory
Combination
Theory
Property Checking
with Interpolants
Quantifiers
EUF
inite State Reachability
Iterative, Symbolic Reachability
oes a state in Start lead to Unsafe via Trans?
Start
(x), U(x), T (x, x 0 )
Unsafe
Trans k
Forward Reachability Analysis
Forward Reachability Analysis
Start
Unsafe
Start
Unsafe
are propositional logic formulae
3
Algorithm: Compute images till a fixed point is reached.
0)
Image
of
Qx:
9x
:
Q(x)
^
T
(x,
x
Algorithm: Compute images till a fixed point is reached.
0 x 0 .9x : [Q(x) ^ T (x, x 0 ) ) Q(x 0 )]
Fixed Point on Q(x): 8x,
Reachability
with
Interpolants
Reachability with Interpolants
Approximate Image
S(x0)
Start
I (x1)
U(x1)
Unsafe
Forward Reachability Analysis
Forward Reachability Analysis
Start
Interpolant I (x1 ) satisfies that:
S(x0 ) ^ T (x0 , x1 ) ) I (x1 )
I (x1 ) ^ U(x1 ) is UNSAT
Start
Unsafe
Unsafe
(over-approximates the image)
(contains no unsafe state)
6
Algorithm: Compute images till a fixed point is reached.
0)
Image
of
Qx:
9x
:
Q(x)
^
T
(x,
x
Algorithm: Compute images till a fixed point is reached.
0 x 0 .9x : [Q(x) ^ T (x, x 0 ) ) Q(x 0 )]
Fixed Point on Q(x): 8x,
Interpolant-Based Reachability Analysis
• Image computation now related to interpolant computation. Interpolant
computation is linear/polynomial in the size of proofs for several theories
though quantifier elimination is more expensive.
• Approximate images may lead to spurious results.
• Restart with a formula that explores executions of a greater depth.
• If there is an error, it will eventually be reached.
• If there is a finite upper bound on the number of steps to the error, and the
error is not reachable, the procedure will eventually produce a proof.
Abstract Reachability Construction
• Interpolants Decorate Positions on the Reachability Tree
• They denote state that are reached at those points
• A covering check is used to determine if all states at some location have been
visited
• More complicated than predicate abstraction or fixed point computation due
to non-monotonicity of interpolant construction
Data Types
Conditionals/
Assignments
Loops
Path Sharing
Recursion
Generalization
Boolean Structure
(Relative)
Completeness
Theory
Combination
Theory
Property Checking
with Interpolants
Quantifiers
EUF