Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied...

87
Solving Quantified Verification Conditions using Satisfiability Modulo Theories Yeting Ge, Clark Barrett, Cesare Tinelli Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.1/28

Transcript of Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied...

Page 1: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Solving Quantified Verification Conditionsusing Satisfiability Modulo Theories

Yeting Ge, Clark Barrett, Cesare Tinelli

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.1/28

Page 2: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

First order logic provides a convenient formalism forspecifying verification conditions

Verification conditions often involve arithmetic and otherwell-established theories

Approaches to checking verification conditions in first orderlogic

Pure first order Automated Theorem Proving (ATP)Good at reasoning about quantified formulasNot so good at theory reasoning· Some useful theories are not finitely axiomatizable

Add ’ad-hoc’ axioms (Denney et al. IJCAR 2004)

Are there any alternatives?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.2/28

Page 3: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

First order logic provides a convenient formalism forspecifying verification conditions

Verification conditions often involve arithmetic and otherwell-established theories

Approaches to checking verification conditions in first orderlogic

Pure first order Automated Theorem Proving (ATP)

Good at reasoning about quantified formulasNot so good at theory reasoning· Some useful theories are not finitely axiomatizable

Add ’ad-hoc’ axioms (Denney et al. IJCAR 2004)

Are there any alternatives?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.2/28

Page 4: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

First order logic provides a convenient formalism forspecifying verification conditions

Verification conditions often involve arithmetic and otherwell-established theories

Approaches to checking verification conditions in first orderlogic

Pure first order Automated Theorem Proving (ATP)Good at reasoning about quantified formulasNot so good at theory reasoning

· Some useful theories are not finitely axiomatizableAdd ’ad-hoc’ axioms (Denney et al. IJCAR 2004)

Are there any alternatives?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.2/28

Page 5: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

First order logic provides a convenient formalism forspecifying verification conditions

Verification conditions often involve arithmetic and otherwell-established theories

Approaches to checking verification conditions in first orderlogic

Pure first order Automated Theorem Proving (ATP)Good at reasoning about quantified formulasNot so good at theory reasoning· Some useful theories are not finitely axiomatizable

Add ’ad-hoc’ axioms (Denney et al. IJCAR 2004)

Are there any alternatives?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.2/28

Page 6: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

First order logic provides a convenient formalism forspecifying verification conditions

Verification conditions often involve arithmetic and otherwell-established theories

Approaches to checking verification conditions in first orderlogic

Pure first order Automated Theorem Proving (ATP)Good at reasoning about quantified formulasNot so good at theory reasoning· Some useful theories are not finitely axiomatizable

Add ’ad-hoc’ axioms (Denney et al. IJCAR 2004)

Are there any alternatives?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.2/28

Page 7: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

First order logic provides a convenient formalism forspecifying verification conditions

Verification conditions often involve arithmetic and otherwell-established theories

Approaches to checking verification conditions in first orderlogic

Pure first order Automated Theorem Proving (ATP)Good at reasoning about quantified formulasNot so good at theory reasoning· Some useful theories are not finitely axiomatizable

Add ’ad-hoc’ axioms (Denney et al. IJCAR 2004)

Are there any alternatives?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.2/28

Page 8: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

Approaches to checking verification conditions in first orderlogic

Automated theorem proving based on Satisfiability Modulo Theories(SMT)

A SMT problem is to determine the satisfiability of some formulaϕ with respect to some fixed background theory T

· Is Select(Store(arr, i, a), i) 6= a satisfiable?Many useful background (combined) theories T can be decided byefficient procedures

Good at theory reasoningTraditionally for quantifier-free formulas onlyException: Simplify

Instantiation based and incompleteShown to work for practical problemsSuccessful, but no longer supported

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.3/28

Page 9: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

Approaches to checking verification conditions in first orderlogic

Automated theorem proving based on Satisfiability Modulo Theories(SMT)

A SMT problem is to determine the satisfiability of some formulaϕ with respect to some fixed background theory T· Is Select(Store(arr, i, a), i) 6= a satisfiable?

Many useful background (combined) theories T can be decided byefficient procedures

Good at theory reasoningTraditionally for quantifier-free formulas onlyException: Simplify

Instantiation based and incompleteShown to work for practical problemsSuccessful, but no longer supported

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.3/28

Page 10: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

Approaches to checking verification conditions in first orderlogic

Automated theorem proving based on Satisfiability Modulo Theories(SMT)

A SMT problem is to determine the satisfiability of some formulaϕ with respect to some fixed background theory T· Is Select(Store(arr, i, a), i) 6= a satisfiable?

Many useful background (combined) theories T can be decided byefficient procedures

Good at theory reasoningTraditionally for quantifier-free formulas onlyException: Simplify

Instantiation based and incompleteShown to work for practical problemsSuccessful, but no longer supported

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.3/28

Page 11: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

Approaches to checking verification conditions in first orderlogic

Automated theorem proving based on Satisfiability Modulo Theories(SMT)

A SMT problem is to determine the satisfiability of some formulaϕ with respect to some fixed background theory T· Is Select(Store(arr, i, a), i) 6= a satisfiable?

Many useful background (combined) theories T can be decided byefficient procedures

Good at theory reasoningTraditionally for quantifier-free formulas only

Exception: SimplifyInstantiation based and incompleteShown to work for practical problemsSuccessful, but no longer supported

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.3/28

Page 12: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Motivation

Approaches to checking verification conditions in first orderlogic

Automated theorem proving based on Satisfiability Modulo Theories(SMT)

A SMT problem is to determine the satisfiability of some formulaϕ with respect to some fixed background theory T· Is Select(Store(arr, i, a), i) 6= a satisfiable?

Many useful background (combined) theories T can be decided byefficient procedures

Good at theory reasoningTraditionally for quantifier-free formulas onlyException: Simplify

Instantiation based and incompleteShown to work for practical problemsSuccessful, but no longer supported

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.3/28

Page 13: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Outline

Quantifier reasoning in SMTSMT solvers and Abstract DPLL Modulo Theories frameworkTriggers, matching and instantiation

ChallengesTrigger selectionInstantiation loopsEager and lazy instantiationIrrelevant axioms

Experimental resultsComparison of different heuristics (in CVC3)Comparison of SMT solversComparison of ATP and SMT solvers

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.4/28

Page 14: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Outline

Quantifier reasoning in SMTSMT solvers and Abstract DPLL Modulo Theories frameworkTriggers, matching and instantiation

ChallengesTrigger selectionInstantiation loopsEager and lazy instantiationIrrelevant axioms

Experimental resultsComparison of different heuristics (in CVC3)Comparison of SMT solversComparison of ATP and SMT solvers

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.4/28

Page 15: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Outline

Quantifier reasoning in SMTSMT solvers and Abstract DPLL Modulo Theories frameworkTriggers, matching and instantiation

ChallengesTrigger selectionInstantiation loopsEager and lazy instantiationIrrelevant axioms

Experimental resultsComparison of different heuristics (in CVC3)Comparison of SMT solversComparison of ATP and SMT solvers

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.4/28

Page 16: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Solver for SMT

Modern SMT solvers (lazy) integrate a SAT solver and one ormore theory solvers

UF

Abstraction

SATTheorySolver

Arithmetic

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.5/28

Page 17: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 18: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b))

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 19: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b)) b1 : f(a) = f(b)b2 : a = b

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 20: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b))

b2 ∧ ¬b1

b1 : f(a) = f(b)b2 : a = b

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 21: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b))

{b1 = F b2 = T}b2 ∧ ¬b1

b1 : f(a) = f(b)b2 : a = b

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 22: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b))

{b1 = F b2 = T}b2 ∧ ¬b1

a = b

b1 : f(a) = f(b)b2 : a = b

f(a) 6= f(b)

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 23: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b))

{b1 = F b2 = T}b2 ∧ ¬b1

a = bT-unsat

b1 : f(a) = f(b)b2 : a = b

f(a) 6= f(b)

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 24: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

(a = b) ∧ ¬(f(a) = f(b))

{b1 = F b2 = T}b2 ∧ ¬b1

No more a = bT-unsat

b1 : f(a) = f(b)b2 : a = b

f(a) 6= f(b)

Abstraction

TheorySolver

SAT

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 25: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT Example

To prove (a = b) ∧ ¬(f(a) = f(b)) is unsatisfiable

Solver

T-unsat

(a = b) ∧ ¬(f(a) = f(b))

{b1 = F b2 = T}b2 ∧ ¬b1

a = b

b1 : f(a) = f(b)b2 : a = b

f(a) 6= f(b)

Abstraction

TheorySolver

SAT

Unsat

No more

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.6/28

Page 26: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 27: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

¬P (3) ∧ ∀x.(x > 1 → P (x))

TheorySolver

SAT

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 28: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

∀x.(x > 1 → P (x))

TheorySolver

SAT

b2 ∧ ¬b1

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)¬P (3) ∧ ∀x.(x > 1 → P (x))

{b1 = F b2 = T} ¬P (3)

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 29: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

Instantiate x with 3

TheorySolver

SAT

b2 ∧ ¬b1

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)¬P (3) ∧ ∀x.(x > 1 → P (x))

{b1 = F b2 = T} ¬P (3)∀x.(x > 1 → P (x))

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 30: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

3 > 1 → P (3)

TheorySolver

SAT

b2 ∧ ¬b1

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)¬P (3) ∧ ∀x.(x > 1 → P (x))

{b1 = F b2 = T} ¬P (3)∀x.(x > 1 → P (x))Instantiate x with 3

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 31: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

3 > 1 → P (3)

TheorySolver

SAT

b2 ∧ ¬b1

T-unsat

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)¬P (3) ∧ ∀x.(x > 1 → P (x))

{b1 = F b2 = T} ¬P (3)∀x.(x > 1 → P (x))Instantiate x with 3

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 32: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

3 > 1 → P (3)

TheorySolver

SAT

b2 ∧ ¬b1

No moreT-unsat

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)¬P (3) ∧ ∀x.(x > 1 → P (x))

{b1 = F b2 = T} ¬P (3)∀x.(x > 1 → P (x))Instantiate x with 3

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 33: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Quantifier Example

To prove ¬P (3) ∧ ∀x.(x > 1→ P (x)) is unsatisfiable.

Solver

3 > 1 → P (3)

TheorySolver

SAT

b2 ∧ ¬b1

No moreT-unsat

Abstraction

b2 : ∀x.(x > 1 → P (x))b1 : P (3)¬P (3) ∧ ∀x.(x > 1 → P (x))

Unsat{b1 = F b2 = T} ¬P (3)

∀x.(x > 1 → P (x))Instantiate x with 3

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.7/28

Page 34: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Abstract DPLL Modulo Theories

Abstract DPLL Modulo Theories is a formalism for DPLL-based smtsolvers

Describes SMT solvers as transition systems (a set of states and transitionrules)

States:

Fail

M || F (M is a set of literals assumed so far, F is a set of CNFclauses)

Final state:Fail

M || F (M is T satisfiable and M |= F )

The goal:From initial state ∅ || F0, derive a final state

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.8/28

Page 35: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Abstract DPLL Modulo Theories

Abstract DPLL Modulo Theories is a formalism for DPLL-based smtsolvers

Describes SMT solvers as transition systems (a set of states and transitionrules)

States:

Fail

M || F (M is a set of literals assumed so far, F is a set of CNFclauses)

Final state:Fail

M || F (M is T satisfiable and M |= F )

The goal:From initial state ∅ || F0, derive a final state

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.8/28

Page 36: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Abstract DPLL Modulo Theories

Abstract DPLL Modulo Theories is a formalism for DPLL-based smtsolvers

Describes SMT solvers as transition systems (a set of states and transitionrules)

States:

Fail

M || F (M is a set of literals assumed so far, F is a set of CNFclauses)

Final state:Fail

M || F (M is T satisfiable and M |= F )

The goal:From initial state ∅ || F0, derive a final state

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.8/28

Page 37: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Abstract DPLL Modulo Theories

Abstract DPLL Modulo Theories is a formalism for DPLL-based smtsolvers

Describes SMT solvers as transition systems (a set of states and transitionrules)

States:

Fail

M || F (M is a set of literals assumed so far, F is a set of CNFclauses)

Final state:Fail

M || F (M is T satisfiable and M |= F )

The goal:From initial state ∅ || F0, derive a final state

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.8/28

Page 38: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Example of Transition Rules

Unit propagation in SATUnitPropagate :

M || F, C ∨ l =⇒ M l || F, C ∨ l if

M |= ¬Cl is undefined in M

Theory propagationT-Propagate :

M || F =⇒ M l || F if

M |=T l

l or ¬l occurs in Fl is undefined in M

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.9/28

Page 39: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Rules for Quantifier Instantiation

An abstract literal is either a literal or a quantified formulaϕ[x/t] denotes the result of substituting t for all freeoccurrences of x in ϕ

Inst_∃ :

M || F =⇒ M || F, (¬(∃x. P ) ∨ P [x/sk]) if

8

<

:

∃ x. P is in M

sk is a fresh constant.

Inst_∀ :

M || F =⇒ M || F, (¬(∀x. P ) ∨ P [x/t]) if

8

<

:

∀ x. P is in M

t is a ground term.

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.10/28

Page 40: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

What to instantiate

Suppose φ = ∀x.P (f(x)) is asserted to be true

Instantiate x with every ground term (naive instantiation)Too many instantiations

Instantiate x with terms relevant to φIf some subterm of φ[x/t] appears in ground formulas inM , t is relevant to φSimilar to resolution

How to find relevant terms?1. Select a subterm of φ that contains x, say f(x)

2. If f(x) matches with a ground term that appears inM , say f(a), a is relevantf(x) is called a triggerE − unification

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.11/28

Page 41: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

What to instantiate

Suppose φ = ∀x.P (f(x)) is asserted to be trueInstantiate x with every ground term (naive instantiation)

Too many instantiations

Instantiate x with terms relevant to φIf some subterm of φ[x/t] appears in ground formulas inM , t is relevant to φSimilar to resolution

How to find relevant terms?1. Select a subterm of φ that contains x, say f(x)

2. If f(x) matches with a ground term that appears inM , say f(a), a is relevantf(x) is called a triggerE − unification

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.11/28

Page 42: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

What to instantiate

Suppose φ = ∀x.P (f(x)) is asserted to be trueInstantiate x with every ground term (naive instantiation)

Too many instantiationsInstantiate x with terms relevant to φ

If some subterm of φ[x/t] appears in ground formulas inM , t is relevant to φSimilar to resolution

How to find relevant terms?1. Select a subterm of φ that contains x, say f(x)

2. If f(x) matches with a ground term that appears inM , say f(a), a is relevantf(x) is called a triggerE − unification

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.11/28

Page 43: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

What to instantiate

Suppose φ = ∀x.P (f(x)) is asserted to be trueInstantiate x with every ground term (naive instantiation)

Too many instantiationsInstantiate x with terms relevant to φ

If some subterm of φ[x/t] appears in ground formulas inM , t is relevant to φSimilar to resolution

How to find relevant terms?1. Select a subterm of φ that contains x, say f(x)

2. If f(x) matches with a ground term that appears inM , say f(a), a is relevantf(x) is called a triggerE − unification

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.11/28

Page 44: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Challenges

Given a set of quantified formulas and ground formulas1. Select some subterms of a quantified formula as triggers2. Match triggers with ground terms3. Instantiate quantified formulas

ChallengesTriggersMatching (equalities, fast matching algorithm)Instantiation

Instantiation loopsEager and lazy instantiationIrrelevant axioms

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.12/28

Page 45: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Challenges

Given a set of quantified formulas and ground formulas1. Select some subterms of a quantified formula as triggers2. Match triggers with ground terms3. Instantiate quantified formulas

ChallengesTriggersMatching (equalities, fast matching algorithm)Instantiation

Instantiation loopsEager and lazy instantiationIrrelevant axioms

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.12/28

Page 46: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Triggers

Trigger selectionTriggers should contain all bound variables

Triggers can have more bound variables than thosequantified by outermost quantifiers· ∀x : (P (x)→ ∀y : Q(x, y))· (Simplify does not allow this)

Sometimes no single subterm contains all boundvariables

Multi-triggers (as in Simplify)Special trigger heuristics

TransitivityAnti-symmetryArray index

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.13/28

Page 47: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Triggers

Trigger selectionTriggers should contain all bound variables

Triggers can have more bound variables than thosequantified by outermost quantifiers· ∀x : (P (x)→ ∀y : Q(x, y))· (Simplify does not allow this)

Sometimes no single subterm contains all boundvariables

Multi-triggers (as in Simplify)

Special trigger heuristicsTransitivityAnti-symmetryArray index

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.13/28

Page 48: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Triggers

Trigger selectionTriggers should contain all bound variables

Triggers can have more bound variables than thosequantified by outermost quantifiers· ∀x : (P (x)→ ∀y : Q(x, y))· (Simplify does not allow this)

Sometimes no single subterm contains all boundvariables

Multi-triggers (as in Simplify)Special trigger heuristics

TransitivityAnti-symmetryArray index

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.13/28

Page 49: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 50: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)

∃y.f(3)− f(y) = 2f(3)− f(sk1) = 2f(x) matches f(sk1)f(sk2)......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 51: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)∃y.f(3)− f(y) = 2

f(3)− f(sk1) = 2f(x) matches f(sk1)f(sk2)......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 52: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)∃y.f(3)− f(y) = 2f(3)− f(sk1) = 2

f(x) matches f(sk1)f(sk2)......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 53: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)∃y.f(3)− f(y) = 2f(3)− f(sk1) = 2f(x) matches f(sk1)

f(sk2)......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 54: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)∃y.f(3)− f(y) = 2f(3)− f(sk1) = 2f(x) matches f(sk1)f(sk2)

......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 55: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)∃y.f(3)− f(y) = 2f(3)− f(sk1) = 2f(x) matches f(sk1)f(sk2)......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 56: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)f(x) is selected as trigger. Suppose f(3) appearssomewhere.f(x) matches f(3)∃y.f(3)− f(y) = 2f(3)− f(sk1) = 2f(x) matches f(sk1)f(sk2)......

3. Loops due to several formulas

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.14/28

Page 57: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)

3. Loops due to several formulas

Loops are not always badWe experimented two kinds of loop prevention mechanism

Static loop test (as in Simplify)Dynamic loop detectionBoth are abandoned

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.15/28

Page 58: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)

3. Loops due to several formulasLoops are not always bad

We experimented two kinds of loop prevention mechanismStatic loop test (as in Simplify)Dynamic loop detectionBoth are abandoned

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.15/28

Page 59: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation Loops

Instantiation could introduce loops1. ∀x.P (f(x), f(g(x))) (Simplify)2. ∀x.(∃y.f(x)− f(y) = 2)

3. Loops due to several formulasLoops are not always badWe experimented two kinds of loop prevention mechanism

Static loop test (as in Simplify)Dynamic loop detectionBoth are abandoned

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.15/28

Page 60: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Eager and lazy instantiation

Eager instantiationInstantiate when unit propagation rule does not apply

May find contradictions earlierMay introduce useless clauses

Lazy instantiationInstantiate when no other transition rule appliesInstantiate only when necessaryMay be too late

Is there a way to have a balance between lazy and eagerinstantiation?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.16/28

Page 61: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Eager and lazy instantiation

Eager instantiationInstantiate when unit propagation rule does not applyMay find contradictions earlierMay introduce useless clauses

Lazy instantiationInstantiate when no other transition rule appliesInstantiate only when necessaryMay be too late

Is there a way to have a balance between lazy and eagerinstantiation?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.16/28

Page 62: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Eager and lazy instantiation

Eager instantiationInstantiate when unit propagation rule does not applyMay find contradictions earlierMay introduce useless clauses

Lazy instantiationInstantiate when no other transition rule applies

Instantiate only when necessaryMay be too late

Is there a way to have a balance between lazy and eagerinstantiation?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.16/28

Page 63: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Eager and lazy instantiation

Eager instantiationInstantiate when unit propagation rule does not applyMay find contradictions earlierMay introduce useless clauses

Lazy instantiationInstantiate when no other transition rule appliesInstantiate only when necessaryMay be too late

Is there a way to have a balance between lazy and eagerinstantiation?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.16/28

Page 64: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Eager and lazy instantiation

Eager instantiationInstantiate when unit propagation rule does not applyMay find contradictions earlierMay introduce useless clauses

Lazy instantiationInstantiate when no other transition rule appliesInstantiate only when necessaryMay be too late

Is there a way to have a balance between lazy and eagerinstantiation?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.16/28

Page 65: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Irrelevant axioms

Verification conditions are often of the form Γ ∧ ¬ϕ where ϕis a formula and Γ is a large fixed T -satisfiable collection of(quantified) axioms

Many formulas and ground terms in Γ are irrelevant to the proof ofunsatisfiability of Γ ∧ ¬ϕ

The solver may spend a lot of resources on irrelevant axiomsIt is not always easy to determine whether axioms are relevant or not

How to prevent the solver from spending too many resourceson irrelevant axioms?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.17/28

Page 66: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Irrelevant axioms

Verification conditions are often of the form Γ ∧ ¬ϕ where ϕis a formula and Γ is a large fixed T -satisfiable collection of(quantified) axioms

Many formulas and ground terms in Γ are irrelevant to the proof ofunsatisfiability of Γ ∧ ¬ϕThe solver may spend a lot of resources on irrelevant axioms

It is not always easy to determine whether axioms are relevant or not

How to prevent the solver from spending too many resourceson irrelevant axioms?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.17/28

Page 67: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Irrelevant axioms

Verification conditions are often of the form Γ ∧ ¬ϕ where ϕis a formula and Γ is a large fixed T -satisfiable collection of(quantified) axioms

Many formulas and ground terms in Γ are irrelevant to the proof ofunsatisfiability of Γ ∧ ¬ϕThe solver may spend a lot of resources on irrelevant axiomsIt is not always easy to determine whether axioms are relevant or not

How to prevent the solver from spending too many resourceson irrelevant axioms?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.17/28

Page 68: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Irrelevant axioms

Verification conditions are often of the form Γ ∧ ¬ϕ where ϕis a formula and Γ is a large fixed T -satisfiable collection of(quantified) axioms

Many formulas and ground terms in Γ are irrelevant to the proof ofunsatisfiability of Γ ∧ ¬ϕThe solver may spend a lot of resources on irrelevant axiomsIt is not always easy to determine whether axioms are relevant or not

How to prevent the solver from spending too many resourceson irrelevant axioms?

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.17/28

Page 69: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation level: three birds one stone

Definition of instantiation level IL(g) of ground term g

All terms appearing in original problem have an instantiation level of 0If ground term g matches some trigger of ∀x.P and g has aninstantiation level IL(g), then all new terms in P [x/t] (as well as newterms derived from them) have instantiation level of IL(g) + 1.

Instantiation level and matchingOnly ground terms with an instantiation level less than an upperbound are used in matching

Instantiation strategyEager instantiationThe upper bound is increased if

CVC3 runs out of ground termsNo other transition rule applies

Iterative deepening on instantiation level

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.18/28

Page 70: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation level: three birds one stone

Definition of instantiation level IL(g) of ground term g

All terms appearing in original problem have an instantiation level of 0If ground term g matches some trigger of ∀x.P and g has aninstantiation level IL(g), then all new terms in P [x/t] (as well as newterms derived from them) have instantiation level of IL(g) + 1.

Instantiation level and matchingOnly ground terms with an instantiation level less than an upperbound are used in matching

Instantiation strategyEager instantiationThe upper bound is increased if

CVC3 runs out of ground termsNo other transition rule applies

Iterative deepening on instantiation level

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.18/28

Page 71: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Instantiation level: three birds one stone

Definition of instantiation level IL(g) of ground term g

All terms appearing in original problem have an instantiation level of 0If ground term g matches some trigger of ∀x.P and g has aninstantiation level IL(g), then all new terms in P [x/t] (as well as newterms derived from them) have instantiation level of IL(g) + 1.

Instantiation level and matchingOnly ground terms with an instantiation level less than an upperbound are used in matching

Instantiation strategyEager instantiationThe upper bound is increased if

CVC3 runs out of ground termsNo other transition rule applies

Iterative deepening on instantiation levelSolving Quantified Verification Conditions using Satisfiability Modulo Theories – p.18/28

Page 72: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Advantages of instantiation level

Neutralizes the harmful effect of instantiation loopsNew ground terms from instantiation will not beconsidered until the upper bound is increased

Balances the eagerness of instantiationsEagerly instantiateLazily increase the upper bound

Avoids spending too many resources on irrelevant axiomsNo ground term will have more attention than others

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.19/28

Page 73: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Advantages of instantiation level

Neutralizes the harmful effect of instantiation loopsNew ground terms from instantiation will not beconsidered until the upper bound is increased

Balances the eagerness of instantiationsEagerly instantiateLazily increase the upper bound

Avoids spending too many resources on irrelevant axiomsNo ground term will have more attention than others

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.19/28

Page 74: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Advantages of instantiation level

Neutralizes the harmful effect of instantiation loopsNew ground terms from instantiation will not beconsidered until the upper bound is increased

Balances the eagerness of instantiationsEagerly instantiateLazily increase the upper bound

Avoids spending too many resources on irrelevant axiomsNo ground term will have more attention than others

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.19/28

Page 75: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Experimental Results

Test cases are from SMT LIB.AUFLIA/Burns 14AUFLIA/misc 29AUFLIA/piVC 42AUFLIA/RicartAgrawala 14AUFLIA/simplify 833AUFLIRA/nasa 26504AUFNIRA/nasa 1561

Only hard cases (5599 out of 29004) are selectedAMD Opteron (64 bit), 1G memory, time limit 5 minutes

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.20/28

Page 76: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3 with Different Heuristics

Category B-E B-L IL-EAUFLIA/Burns 12 12 12 12AUFLIA/misc 14 12 14 14AUFLIA/piVC 29 29 29 29AUFLIA/RicAgla 14 14 14 14AUFLIA/simplify 769 497 762 768AUFLIRA/nasa 4619 4527 4131 4526AUFNIRA/nasa 142 72 46 72

B-E : No instantiation level heuristic, with eager instantiationB-L : No instantiation level heuristic, with lazy instantiationIL-E: Instantiation level with eager instantiation

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.21/28

Page 77: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3 with Different Heuristics

Category B-E B-L IL-EAUFLIA/Burns 12 12 12 12AUFLIA/misc 14 12 14 14AUFLIA/piVC 29 29 29 29AUFLIA/RicAgla 14 14 14 14AUFLIA/simplify 769 497 762 768AUFLIRA/nasa 4619 4527 4131 4526AUFNIRA/nasa 142 72 46 72

B-E : No instantiation level heuristic, with eager instantiationB-L : No instantiation level heuristic, with lazy instantiationIL-E: Instantiation level with eager instantiation

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.21/28

Page 78: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3 with Different Heuristics

Category B-E B-L IL-EAUFLIA/Burns 12 12 12 12AUFLIA/misc 14 12 14 14AUFLIA/piVC 29 29 29 29AUFLIA/RicAgla 14 14 14 14AUFLIA/simplify 769 497 762 768AUFLIRA/nasa 4619 4527 4131 4526AUFNIRA/nasa 142 72 46 72

B-E : No instantiation level heuristic, with eager instantiationB-L : No instantiation level heuristic, with lazy instantiationIL-E: Instantiation level with eager instantiation

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.21/28

Page 79: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3 with Different Heuristics

Category B-E B-L IL-EAUFLIA/Burns 12 12 12 12AUFLIA/misc 14 12 14 14AUFLIA/piVC 29 29 29 29AUFLIA/RicAgla 14 14 14 14AUFLIA/simplify 769 497 762 768AUFLIRA/nasa 4619 4527 4131 4526AUFNIRA/nasa 142 72 46 72

B-E : No instantiation level heuristic, with eager instantiationB-L : No instantiation level heuristic, with lazy instantiationIL-E: Instantiation level with eager instantiation

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.21/28

Page 80: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3, Yices and Fx7

Yices, version of SMT competition 2006Fx7, as of Nov 15, 2006CVC3, version 1.1

fx7 yices CVC3

category #case #valid time #valid time #valid time

AUFLIA/Burns 12 12 0.429 12 0.011 12 0.020

AUFLIA/misc 14 12 0.682 14 0.050 14 0.048

AUFLIA/piVC 29 15 0.517 29 0.030 29 0.106

AUFLIA/RicAgla 14 14 0.640 14 0.026 14 0.041

AUFLIA/simplify 769 760 3.218 740 1.424 768 0.739

AUFLIRA/nasa 4619 4187 0.452 4520 0.082 4526 0.014

AUFNIRA/nasa 142 48 0.410 N/A N/A 72 0.012

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.22/28

Page 81: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3, Yices and Fx7

Yices, version of SMT competition 2006Fx7, as of Nov 15, 2006CVC3, version 1.1

fx7 yices CVC3

category #case #valid time #valid time #valid time

AUFLIA/Burns 12 12 0.429 12 0.011 12 0.020

AUFLIA/misc 14 12 0.682 14 0.050 14 0.048

AUFLIA/piVC 29 15 0.517 29 0.030 29 0.106

AUFLIA/RicAgla 14 14 0.640 14 0.026 14 0.041

AUFLIA/simplify 769 760 3.218 740 1.424 768 0.739

AUFLIRA/nasa 4619 4187 0.452 4520 0.082 4526 0.014

AUFNIRA/nasa 142 48 0.410 N/A N/A 72 0.012

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.22/28

Page 82: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

SMT and ATP

NASA casesVerification conditions of some NASA softwareIntroduced by Denney et al. at IJCAR 2004Claim: Modern ATPs are powerful enough for “practicalapplication in program certification”

T∅ The first set generated, the hardestT∀,→

Tprop (e.g. true ∨ P ===> true)Teval (e.g. succ(pred(x)) ===> x)Tarray

Tpolicy (ad-hoc simplification, the easiest)Tarray∗ simplification of T∀,→

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.23/28

Page 83: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3, Simplify, SPASS, Vampire

SimplifyThe only SMT solvers for quantifier reasoning that ispublicly available in 2004

Vampire, version 8.1One of the best ATPs, won two categories of CASCcompetition in recent years

SPASS, version 2.2The best ATP in the IJCAR 2004 paper

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.24/28

Page 84: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3, Simplify, SPASS, Vampire

category #cases Vampire SPASS Simplify CVC3T∅ 365 266 302 207 343T∀,→ 6198 6080 6063 5957 6174Tprop 1468 1349 1343 1370 1444Teval 1076 959 948 979 1052Tarray 2026 2005 2000 1943 2005Tpolicy 1987 1979 1974 1917 1979Tarray∗ 14931 14903 14892 14699 14905total 28051 27541 27522 27072 27902

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.25/28

Page 85: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

CVC3, Simplify, SPASS, Vampire

category Vampire SPASS Simplify CVC3T∅ 9.277 1.765 0.068 0.017T∀,→ 2.154 0.673 0.017 0.004Tprop 4.322 1.066 0.339 0.006Teval 5.603 0.760 0.042 0.008Tarray 1.444 0.270 0.011 0.005Tpolicy 1.494 0.272 0.010 0.004Tarray∗ 0.695 0.232 0.010 0.005total 1.560 0.411 0.015 0.004

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.26/28

Page 86: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Related works

SMT solvers[1] D. Detlefs, G. Nelson, and J. B. Saxe. Simplify: a theorem prover for program checking.J. ACM, 52(3):365–473, 2005.[2] B. Dutertre and L. Moura. Yices. yices.csl.sri.com/

[3] M. Moskal. Fx7. nemerle.org/ malekith/smt/en.html

SMT benchmarks[4] S. Ranise and C. Tinelli. The satisfiability modulo theories library (SMT-LIB).www.SMT-LIB.org, 2006.

[5] E. Denney, B. Fischer, and J. Schumann. Using automated theorem provers to certify

auto-generated aerospace software. In D. A. Basin and M. Rusinowitch, editors, IJCAR,

volume 3097 of Lecture Notes in Computer Science, pages 198–212. Springer, 2004.

DPLL(T)[6] H. Ganzinger, G. Hagen, R. Knowings, A. Oliveras, and C. Tinelli. DPLL(T): Fast

decision procedures. In R. Alur and D. Peled, editors, Proceedings of the 16th International

Conference on Computer Aided Verification, CAV’04 (Boston, Massachusetts), volume 3114

of LUCKS, pages 175–188. Springer, 2004.Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.27/28

Page 87: Solving Quantied Verication Conditions using …oliveras/espai/smtSlides/clark.pdfSolving Quantied Verication Conditions using Satisability Modulo Theories Yeting Ge, Clark Barrett,

Summary

Instantiation level heuristic meets several challenges inquantifier reasoningFor certain kinds of verification conditions, SMT solversmay be a better choiceFuture work

Efficient multi-trigger matching with equalitiesTechniques from ATP

Solving Quantified Verification Conditions using Satisfiability Modulo Theories – p.28/28