interpolants from z3 proofs

22
Interpolants from Z3 proofs Ken McMillan Microsoft Research

Upload: trula

Post on 23-Feb-2016

52 views

Category:

Documents


0 download

DESCRIPTION

Interpolants from Z3 proofs. Ken McMillan Microsoft Research. TexPoint fonts used in EMF: A A A A A. Interpolating Z3. Deriving Craig interpolants from proofs (feasible interpolation) has a variety of applications in verification: Abstraction refinement - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Interpolants  from Z3 proofs

Interpolants from Z3 proofs

Ken McMillanMicrosoft Research

Page 2: Interpolants  from Z3 proofs

Interpolating Z3• Deriving Craig interpolants from proofs (feasible interpolation) has a

variety of applications in verification:– Abstraction refinement– Invariant and procedure summary generation, etc.

• The required proofs can be derived from SAT or SMT solvers. • Interpolating SMT solvers lag far behind state-of-the art performance.

– Z3 proofs not suitable for interpolation in various ways

We attempt to close this gap by using Z3 proofs as a guidefor a less efficient interpolating prover, without modifying Z3.

The result is an interpolating prover with nearly the performanceof proof-generating Z3 on a program verification benchmark.

Page 3: Interpolants  from Z3 proofs

Interpolation Lemma

• If False, there exists an interpolant for such that:

[Craig,57]

To understand the issues, let's look at how a modern SMT solver works.

• Example: – ,

• A proof system has the feasible interpolation property if we can derive an interpolant for from a refutation in polynomial time.– Z3's proof system doesn't have this property, but we want to

generate interpolants anyway.

Formulas written using vocabulary of

Page 4: Interpolants  from Z3 proofs

SAT solvers and resolution proofs• The core of an SMT solver is a DPLL SAT solver.• A basic DPLL SAT solvers produces proofs using the resolution rule:

p : p D

_ D

• Resolution steps are produced by conflict clause generation and arise from the following operations:– Case splits (decisions)– Unit propagation

We can efficiently generate interpolants from resolutionproofs that are strict...

Page 5: Interpolants  from Z3 proofs

Strict resolution and interpolation• A formula is local if it is in or .• A clause is strict if it is a disjunction of local formulas.

– DPLL produces only strict clauses• We will color local formulas green if they are in and red otherwise.

Suppose we have a strict clause implied by A,B:

𝑎∨𝑏∨𝑐∨𝑑∨𝑒∨ 𝑓

An interpolation of this clause is an interpolant for these formulas:

𝐴∧(¬𝑎∧¬𝑏∧¬𝑐 ) (

An interpolation for the empty clause is an interpolant for .

Page 6: Interpolants  from Z3 proofs

Interpolation rules for resolution• Suppose we have a strict resolution tree with clauses from and a the

leaves:

𝐴 𝐴 𝐴 𝐴 𝐴𝐵 𝐵 𝐵 𝐵

FALSE

Simple rules allow propagationof interpolations downward inthe tree...

At the root we have an interpolantfor .

Page 7: Interpolants  from Z3 proofs

Simple SMT solver• In SMT, our atoms are not just propositional symbols, but may include

predicates over functional terms, such as , or .• Satisfiabllity is modulo a theory that gives an interpretation to certain

symbols (say, and ).

DPLLCLAUSES

THEORY

LITERALS

LEMMAS

Lemmas are clauses over existing atoms that are valid inthe theory and contradict current truth assignment.

Page 8: Interpolants  from Z3 proofs

Simple SMT and interpolation• Leaves of resolution tree now include strict theory lemmas.

Solver generates proof of lemma

𝐴 𝐴 𝐴𝐵 𝐵 LEMMA Interpolation

Interpolants propagate downward

We rely on theory solvers to generateproofs in a system with feasible interpolation.

Page 9: Interpolants  from Z3 proofs

A more realistic view• An efficient SMT solver such as Z3 presents a more complex picture.

DPLL

Simplifiedclauses

THEORY

LITERALS

LEMMAS

CLAUSIFY

EQUALITYREWRITING

TRANSFORMS

𝐴 ,𝐵

UNIT PROP.

CASE SPLITS

AXIOM INSTANCES

Page 10: Interpolants  from Z3 proofs

Issues • Z3 does generate proofs, but leaves a number of issues to be resolved

for interpolation.– Theory lemmas do not have proofs– Theory propagation– Preprocessing– Axiom instances– Case splits

• These problems can be addressed in practice by proof transformations.• The result is a strict resolution proof with interpolated theory lemmas.

Non-strict clauses!

Page 11: Interpolants  from Z3 proofs

Secondary prover• To interpolate the lemmas, we use a secondary interpolating prover.• This can be a simple SMT solver, since high efficiency is not required.

𝐴 𝐴 𝐴𝐵 𝐵 LEMMA

Proof of lemma is missing?

𝑎∨𝑏∨𝑐∨𝑑∨𝑒∨ 𝑓

Secondary prover provides interpolantfor these formulas.

𝐴∧(¬𝑎∧¬𝑏∧¬𝑐 ) (

Result is interpolation for lemma.

Page 12: Interpolants  from Z3 proofs

Extracting strict lemmas• As a result of theory propagation, the resolution tree may embed sub-

trees involving theory reasoning.

𝐴 𝐴 𝐴𝐵 𝐵 LEMMA

𝑥=𝑦 𝑧=𝑦

𝑦=𝑧SYMM

TRANS𝑥=𝑧

Page 13: Interpolants  from Z3 proofs

𝑥≠ 𝑦∨𝑧 ≠ 𝑦∨𝑥=𝑧𝑥=𝑦 𝑧=𝑦LEMMA

Sub-tree to lemma

𝑥=𝑦 𝑧=𝑦

𝑦=𝑧SYMM

TRANS

𝑥≠ 𝑦∨𝑥=𝑧

𝑥=𝑧𝑥=𝑧

• Resulting derivation must be strict• We extract smallest such sub-tree, to make lemmas small, since they

must be interpolated by secondary prover. • Lemma extraction can also remove any non-strict clause from proof• In worst case, extracted tree could be whole proof!

Page 14: Interpolants  from Z3 proofs

Eliminating local derivations• Simplifications in pre-processing can introduce large local derivations.

Γ∈ℒ (𝐴)

𝐴𝐴𝐴If is derived from only, we canpretend it is a clause in and eliminate its proof.

Put another way, a purely locallemma can be interpolated usingthe normal rules without the secondaryprover. Thus we seek the largestpossible local lemmas.

Page 15: Interpolants  from Z3 proofs

Quantifier instantiation• Instantiation of axioms in Z3 can produce non-strict clauses.

Example: Quantifier instantiation rule

(∀ 𝑥 .𝑃 (𝑥 ) )→𝑃(𝑡 ) not local!

• Instantiations can be made local introducing fresh shared symbols.

∀ 𝑥 .𝑃 (𝑥) 𝑄 (𝑡)𝑃 (𝑡)𝑃 (𝑠) 𝑠=𝑡

𝐼 (𝑠)∀𝑠 . 𝐼 (𝑠)Eliminate fresh symbol ininterpolant by adding quantifier.

Result: Quantifier instantiation becomes local

(∀ 𝑥 .𝑃 (𝑥 ) )→𝑃(𝑠) local!

Page 16: Interpolants  from Z3 proofs

Implications• Since all instantiations are made local, they can be interpolated without

the secondary solver.• Secondary solver need not support quantification or axiomatized

theories such as the theory of arrays.• Example:

– Z3 handles AUFLIA– Secondary handles only QF_UFLIA (select/store uninterpreted)

• Z3 does the hard work of instantiating quantifiers and array theory.

Downside is unnecessary quantifiers may be added to interpolants.This can be mitigated by simple quantifier elimination tricks.

Page 17: Interpolants  from Z3 proofs

Resolution re-ordering• Non-strict clauses can be generated by two sources

– Re-writing with equalities during pre-processing– Case splits generated by theory solvers

• These can sometimes result in extraction of large lemmas– This can be mitigated by moving non-local literals up in the proof tree by

resolution re-ordering– For rewriting, this can be done efficiently by using proofs of equivalence of

literals found within the proof.

Page 18: Interpolants  from Z3 proofs

Overall approach• These proof translation techniques allow us to use unmodified Z3 as the

prover.

Z3𝐴 ,𝐵 proof

TRANSLATE

lemmas interpolations

FOCI

proof interprules interpolant

The proof translation is exponential in the worst case.We have to determine the overhead in practice empirically.

Page 19: Interpolants  from Z3 proofs

Benchmark problems• Bounded-depth software model checking.

procedure instances

... ...

... ...

F F

propertymain

Motivation: Use Z3's efficient backtracking to cover a large space of execution paths, rather than considering individual paths.

Interpolant is a speculatedprocedure summary for P.

P

F F

Page 20: Interpolants  from Z3 proofs

Experimental setup• Z3 as primary prover (AUFLIA), FOCI as secondary (QF_UFLIA)• Benchmark problems in AUFLIA mainly from driver verification

– Two concurrent using Lal/Reps• Measure overhead of proof translation• Compare to some existing interpolating solvers

– MathSAT4 (QF_LRA + IDL)– Princess (QF_LIA)– SMTInterpol (QF_LIA)

• For these solvers, used Z3 to generate array/quantifier instances– Thus, they are solving easier, quantifier-free, problems

Page 21: Interpolants  from Z3 proofs

Results

• Translation overhead 1%-20% (less for larger problems)• One to two orders of magnitude faster that MathSAT (except memouts)• Z3 proofs are large, but effectively reduced to easy lemmas.

Page 22: Interpolants  from Z3 proofs

Conclusion• Making an efficient SMT solver interpolating is hard• Using a proof translation we can use an efficient solver (Z3) as a guide

for an inefficient interpolating solver. – Resulting proof has lemmas to be interpolated– Interpolating solver need no implement all theories– Overhead of interpolating solver is small if lemmas are simple

• First interpolating solver for AUFLIA• Orders-of-magnitude improvement in interpolating solver performance.

– Allows computation of full procedure summaries directly as interpolants– Exploits fast backtracking capability of Z3 without modification

Interpolation with the efficiency of Z3 may open up new areas ofapplication for interpolating provers.