Incremental QBF Solving - Semantic Scholar

Report 2 Downloads 178 Views
Incremental QBF Solving Florian Lonsing and Uwe Egly Institute of Information Systems Vienna University of Technology http://www.kr.tuwien.ac.at/ Vienna, Austria

20th International Conference on Principles and Practice of Constraint Programming, September 8 - 12, Lyon, France

This work is supported by the Austrian Science Fund (FWF) under grant S11409-N23.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

1 / 17

Overview (1/3)

Quantified Boolean Formulas (QBF): Propositional formulae with universally (∀) and (∃) existentially quantified variables. In terms of QCSP: all variables have Boolean domains, all constraints are clauses. E.g. ∃x ∀y ∃z. C1 ∧ C2 ∧ . . . ∧ Cn . Solving a QBF: PSPACE-complete. Applications in model checking, formal verification, testing,. . .

Incremental Solving: In practice, often a sequence ψ0 , ψ1 , . . . , ψn of related formulas must be solved. Try to exploit similarity between formulas in a sequence. Information gathered when solving ψi might help to solve ψj with j > i.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

2 / 17

Overview (1/3)

Quantified Boolean Formulas (QBF): Propositional formulae with universally (∀) and (∃) existentially quantified variables. In terms of QCSP: all variables have Boolean domains, all constraints are clauses. E.g. ∃x ∀y ∃z. C1 ∧ C2 ∧ . . . ∧ Cn . Solving a QBF: PSPACE-complete. Applications in model checking, formal verification, testing,. . .

Incremental Solving: In practice, often a sequence ψ0 , ψ1 , . . . , ψn of related formulas must be solved. Try to exploit similarity between formulas in a sequence. Information gathered when solving ψi might help to solve ψj with j > i.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

2 / 17

Overview (2/3): Non-Incremental QBF Solving

ψ0 −→ Solver −→ SAT/UNSAT ψ1 −→ Solver −→ SAT/UNSAT .. . ψn −→ Solver −→ SAT/UNSAT

Given: sequence ψ0 , ψ1 , . . . , ψn of PCNFs to be solved. Typical usage scenario: solver is called from the command line. Each ψi is parsed from scratch (might incur non-negligible overhead). Syntactic similarity between ψi and ψj with i < j is not exploited. All information gathered when solving ψi is lost. Potential repetition of work when solving ψi+1 .

Lonsing and Egly (TU Wien)

Incremental QBF Solving

3 / 17

Overview (3/3)

Incremental QBF Solving: Overview of general-purpose incremental QBF solving. Backtracking search procedure based on DPLL algorithm for QBF. Proof system: derivation of learned constraints by resolution. Challenge: which constraints can be reused in incremental solving? Promising experimental results.

DepQBF: Incremental QBF solver. Free software: http://lonsing.github.io/depqbf/ Related work: Incremental SAT solving by MiniSAT,. . . [ES03, NRS14]. Incremental QBF solving by QuBE: bounded model checking of partial designs [MMLB12].

Lonsing and Egly (TU Wien)

Incremental QBF Solving

4 / 17

Overview (3/3)

Incremental QBF Solving: Overview of general-purpose incremental QBF solving. Backtracking search procedure based on DPLL algorithm for QBF. Proof system: derivation of learned constraints by resolution. Challenge: which constraints can be reused in incremental solving? Promising experimental results.

DepQBF: Incremental QBF solver. Free software: http://lonsing.github.io/depqbf/ Related work: Incremental SAT solving by MiniSAT,. . . [ES03, NRS14]. Incremental QBF solving by QuBE: bounded model checking of partial designs [MMLB12].

Lonsing and Egly (TU Wien)

Incremental QBF Solving

4 / 17

QBF Syntax

QBF in Prenex Conjunctive Normal Form: Given a Boolean formula φ(x1 , . . . , xm ) in CNF. ˆ := Q1 B1 Q2 B2 . . . Qm Bm . Quantifier prefix Q Quantifiers Qi ∈ {∀, ∃}. Quantifier block Bi ⊆ {x1 , . . . , xm } containing variables. QBF in prenex CNF (PCNF): Q1 B1 Q2 B2 . . . Qm Bm .φ(x1 , . . . , xm ). Bi ≤ Bi+1 : quantifier blocks are linearly ordered (extended to variables, literals).

Example Given the CNF φ := (x ∨ ¬y ) ∧ (¬x ∨ y ). ˆ := ∀x ∃y . Given the quantifier prefix Q ˆ = ∀x ∃y . (x ∨ ¬y ) ∧ (¬x ∨ y ). Prenex CNF: ψ := Q.φ

Lonsing and Egly (TU Wien)

Incremental QBF Solving

5 / 17

QBF Semantics (1/2)

Recursive Definition: Given a PCNF ψ := Q1 B1 . . . Qm Bm . φ. Prerequisite: every variable is quantified in the prefix (no free variables). Recursively assign the variables in prefix order (from left to right). Base cases: the QBF > (⊥) is satisfiable (unsatisfiable). ψ = ∀x . . . φ is satisfiable if ψ[¬x ] and ψ[x ] are satisfiable. ψ = ∃x . . . φ is satisfiable if ψ[¬x ] or ψ[x ] is satisfiable. In ψ[x ] (ψ[¬x ]), every occurrence of x in ψ is replaced by > (⊥). Assignment A = {l1 , . . . , ln }: if li ∈ A is a positive (negative) literal, then var (li ) is assigned to true (false).

Lonsing and Egly (TU Wien)

Incremental QBF Solving

6 / 17

QBF Semantics (2/2)

Example (continued) The PCNF ψ = ∀x ∃y .(x ∨ ¬y ) ∧ (¬x ∨ y ) is satisfiable if (1) ψ[x ] = ∃y .(y ) and (2) ψ[¬x ] = ∃y .(¬y ) are satisfiable. (1) ψ[x ] = ∃y .(y ) is satisfiable since ψ[x , y ] = > is satisfiable. (2) ψ[¬x ] = ∃y .(¬y ) is satisfiable since ψ[¬x , ¬y ] = > is satisfiable.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

7 / 17

Search-Based QBF Solving with Constraint Learning

Very high-level view, omitting crucial details: QBF-specific variant of DPLL algorithm [DLL62, CGS98]. Basic idea: backtracking-based implementation of semantics by enumeration of assignments. Constraint learning as a proof system, based on enumerated assignments A. ψ[A] = ⊥: derive a new clause. ψ[A] = >: derive a new cube, i.e. conjunction of literals. Derivation relation `.

Lonsing and Egly (TU Wien)

bool bt_search (PCNF Qx ψ, Assignment A) /* 1. Simplify under given assignment. */ ψ 0 := simplify(Qx ψ[A]); /* 2. Check base cases. */ if (ψ 0 == ⊥) return false; if (ψ 0 == >) return true; /* 3. Assignment generation, backtracking, constraint learning */ if (Q == ∃) return bt_search (ψ 0 , A ∪ {¬ x }) || bt_search (ψ 0 , A ∪ {x }); if (Q == ∀) return bt_search (ψ 0 , A ∪ {¬ x }) && bt_search (ψ 0 , A ∪ {x });

Incremental QBF Solving

8 / 17

Constraint Learning by Example (1/2): Clause Derivations Example ψ := ∃x ∀u∃y . (x ∨ u ∨ ¬y ) ∧ (x ∨ u ∨ y ) ∧ (¬x ∨ ¬u ∨ ¬y ) ∧ (¬x ∨ ¬u ∨ y ).

(x ∨ u ∨ ¬y )

(x ∨ u ∨ y )

(¬x ∨ ¬u ∨ ¬y )

(¬x ∨ ¬u ∨ y )

Input clauses: ∀C ∈ ψ, by definition it holds that ψ ` C .

Lonsing and Egly (TU Wien)

Incremental QBF Solving

9 / 17

Constraint Learning by Example (1/2): Clause Derivations Example ψ := ∃x ∀u∃y . (x ∨ u ∨ ¬y ) ∧ (x ∨ u ∨ y ) ∧ (¬x ∨ ¬u ∨ ¬y ) ∧ (¬x ∨ ¬u ∨ y ).

(x ∨ u ∨ ¬y )

(x ∨ u ∨ y )

(¬x ∨ ¬u ∨ ¬y )

(x ∨ u)

(¬x ∨ ¬u ∨ y )

(¬x ∨ ¬u)

Input clauses: ∀C ∈ ψ, by definition it holds that ψ ` C . Resolution of clauses (informally): for C1 , C2 with ψ ` C1 , ψ ` C2 and x ∈ C1 and ¬x ∈ C2 , it holds that ψ ` C where C = C1 ⊗ C2 is the resolvent of C1 and C2 .

Lonsing and Egly (TU Wien)

Incremental QBF Solving

9 / 17

Constraint Learning by Example (1/2): Clause Derivations Example ψ := ∃x ∀u∃y . (x ∨ u ∨ ¬y ) ∧ (x ∨ u ∨ y ) ∧ (¬x ∨ ¬u ∨ ¬y ) ∧ (¬x ∨ ¬u ∨ y ).

(x ∨ u ∨ ¬y )

(x ∨ u ∨ y )

(¬x ∨ ¬u ∨ ¬y )

(¬x ∨ ¬u ∨ y )

(x ∨ u)

(¬x ∨ ¬u)

(x )

(¬x ) ∅

Input clauses: ∀C ∈ ψ, by definition it holds that ψ ` C . Resolution of clauses (informally): for C1 , C2 with ψ ` C1 , ψ ` C2 and x ∈ C1 and ¬x ∈ C2 , it holds that ψ ` C where C = C1 ⊗ C2 is the resolvent of C1 and C2 . Reduction of clauses: for C1 with ψ ` C1 , it holds that ψ ` C where C is obtained by removing trailing universal literals from C by prefix ordering.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

9 / 17

Constraint Learning by Example (2/2): Cube Derivations Example ψ := ∀x ∃y . (x ∨ ¬y ) ∧ (¬x ∨ y ).

ψ[x , y ] = ⊤

ψ[¬x , ¬y ] = ⊤

(x ∧ y )

(¬x ∧ ¬y )

Model Vgeneration: for an assignment A with ψ[A] = >, it holds that ψ ` C where C = l∈A l.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

10 / 17

Constraint Learning by Example (2/2): Cube Derivations Example ψ := ∀x ∃y . (x ∨ ¬y ) ∧ (¬x ∨ y ).

ψ[x , y ] = ⊤

ψ[¬x , ¬y ] = ⊤

(x ∧ y )

(¬x ∧ ¬y )

(x )

(¬x )

Model Vgeneration: for an assignment A with ψ[A] = >, it holds that ψ ` C where C = l∈A l. Reduction of cubes: for C1 with ψ ` C1 , it holds that ψ ` C where C is obtained by removing trailing existential literals from C by prefix ordering.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

10 / 17

Constraint Learning by Example (2/2): Cube Derivations Example ψ := ∀x ∃y . (x ∨ ¬y ) ∧ (¬x ∨ y ).

ψ[x , y ] = ⊤

ψ[¬x , ¬y ] = ⊤

(x ∧ y )

(¬x ∧ ¬y )

(x )

(¬x ) ∅

Model Vgeneration: for an assignment A with ψ[A] = >, it holds that ψ ` C where C = l∈A l. Reduction of cubes: for C1 with ψ ` C1 , it holds that ψ ` C where C is obtained by removing trailing existential literals from C by prefix ordering. Resolution of cubes (informally): for C1 , C2 with ψ ` C1 , ψ ` C2 and x ∈ C1 and ¬x ∈ C2 , it holds that ψ ` C where C = C1 ⊗ C2 is the resolvent of C1 and C2 . Lonsing and Egly (TU Wien)

Incremental QBF Solving

10 / 17

Constraint Learning as a Proof System Satisfiability: ˆ ≡sat Q.(φ ˆ Soundness of a learned cube C with ψ ` C : Q.φ ∨ C ). Derivation of empty cube: ψ ` ∅ if and only if ψ satisfiable. Unsatisfiability: ˆ ≡sat Q.(φ ˆ Soundness of a learned clause C with ψ ` C : Q.φ ∧ C ). Derivation of empty clause: ψ ` ∅ if and only if ψ unsatisfiable. Clause and Cube Learning in Search-Based QBF Solving: Assignment generation drives the application of the proof rules. Clause and Cube Learning in Incremental Solving: If ψ is modified to obtain ψ 0 , then if ψ ` C for a constraint C we might have ψ 0 0 C . E.g.: if ψ 0 0 C for a clause C then in general ψ 0 6≡sat ψ 0 ∧ C . Soundness: non-derivable (potentially invalid) constraints must be discarded.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

11 / 17

Constraint Learning as a Proof System Satisfiability: ˆ ≡sat Q.(φ ˆ Soundness of a learned cube C with ψ ` C : Q.φ ∨ C ). Derivation of empty cube: ψ ` ∅ if and only if ψ satisfiable. Unsatisfiability: ˆ ≡sat Q.(φ ˆ Soundness of a learned clause C with ψ ` C : Q.φ ∧ C ). Derivation of empty clause: ψ ` ∅ if and only if ψ unsatisfiable. Clause and Cube Learning in Search-Based QBF Solving: Assignment generation drives the application of the proof rules. Clause and Cube Learning in Incremental Solving: If ψ is modified to obtain ψ 0 , then if ψ ` C for a constraint C we might have ψ 0 0 C . E.g.: if ψ 0 0 C for a clause C then in general ψ 0 6≡sat ψ 0 ∧ C . Soundness: non-derivable (potentially invalid) constraints must be discarded.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

11 / 17

Incremental Solving

ψ0

−→

Solver −→ SAT/UNSAT ↓ LC 00

ψ1 :

ψn :

add φdel 1 ,φ1

−→

add φdel n ,φn

−→

Solver −→ SAT/UNSAT .. . ↓ LC 0n−1 Solver −→ SAT/UNSAT

Typical usage scenario: solver is called as a library from an external program via API. Reduced hard disk I/O overhead: only new parts are parsed. LC 0i : subset of the constraints learned when solving ψj with j ≤ i. Parts of the constraints learned when solving previous formulas can be reused. Reused clause (cube) C : ψi+1 ≡sat ψi+1 ∧ C (ψi+1 ≡sat ψi+1 ∨ C ) must still hold. Potential speed up compared to non-incremental solving.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

12 / 17

Incremental Solving: Deleting Clauses from the Input Formula (1/2) Example (continued) ψ := ∃x ∀u∃y . (x ∨ u ∨ ¬y ) ∧ (x ∨ u ∨ y ) ∧ (¬x ∨ ¬u ∨ ¬y ) ∧ (¬x ∨ ¬u ∨ y ).

(x ∨ u ∨ ¬y )

(x ∨ u ∨ y )

(¬x ∨ ¬u ∨ ¬y )

(¬x ∨ ¬u ∨ y )

(x ∨ u)

(¬x ∨ ¬u)

(x )

(¬x ) ∅

Deleting clauses from ψi to obtain ψi+1 : for a learned clause C with ψi ` C we might have ψi+1 0 C and ψi+1 6≡sat ψi+1 ∧ C . From ψi to ψi+1 : the set of learned clauses must be maintained. How to detect efficiently if ψi+1 ` C ? In practice: solvers do not keep the derivations of the learned constraints. Lonsing and Egly (TU Wien)

Incremental QBF Solving

13 / 17

Incremental Solving: Deleting Clauses from the Input Formula (1/2) Example (continued) h

(

(y ). h (∨ (¬u h ψ := ∃x ∀u∃y . (x ∨ u ∨ ¬y ) ∧ (x ∨ u ∨ y ) ∧ (¬x ∨ ¬u ∨ ¬y ) ∧ ( (¬x (∨h hh (x ∨ u ∨ ¬y )

(x ∨ u ∨ y )

(¬x ∨ ¬u ∨ ¬y )

h hh (( (∨ h (¬x y) (∨(¬u hh (

(x ∨ u)

XX  (¬x ∨X¬u) X X 

(x )

H ) (¬x H  A∅

Deleting clauses from ψi to obtain ψi+1 : for a learned clause C with ψi ` C we might have ψi+1 0 C and ψi+1 6≡sat ψi+1 ∧ C . From ψi to ψi+1 : the set of learned clauses must be maintained. How to detect efficiently if ψi+1 ` C ? In practice: solvers do not keep the derivations of the learned constraints. Lonsing and Egly (TU Wien)

Incremental QBF Solving

13 / 17

Incremental Solving: Deleting Clauses from the Input Formula (2/2) Example (continued) ψ := ∃x ∀u∃y . (x ∨ u ∨ ¬y ) ∧ (x ∨ u ∨ y ) ∧ (¬x ∨ ¬u ∨ ¬y ) ∧ (¬x ∨ ¬u ∨ y ).

(x ∨ u ∨ ¬y )

(x ∨ u ∨ y )

(¬x ∨ ¬u ∨ ¬y )

(¬x ∨ ¬u ∨ y )

(x ∨ u)

(¬x ∨ ¬u)

(x )

(¬x ) ∅

Lonsing and Egly (TU Wien)

Incremental QBF Solving

14 / 17

Incremental Solving: Deleting Clauses from the Input Formula (2/2) Example (continued) ψ := ∃s1 , s2 , s3 , s4 , x ∀u∃y . (s1 ∨ x ∨ u ∨ ¬y ) ∧ (s2 ∨ x ∨ u ∨ y ) ∧ (s3 ∨ ¬x ∨ ¬u ∨ ¬y ) ∧ (s4 ∨ ¬x ∨ ¬u ∨ y ).

(s1 ∨ x ∨ u ∨ ¬y )

(s2 ∨ x ∨ u ∨ y )

(s3 ∨ ¬x ∨ ¬u ∨ ¬y )

(s4 ∨ ¬x ∨ ¬u ∨ y )

(s1 ∨ s2 ∨ x ∨ u)

(s3 ∨ s4 ∨ ¬x ∨ ¬u)

(s1 ∨ s2 ∨ x )

(s3 ∨ s4 ∨ ¬x ) (s1 ∨ s2 ∨ s3 ∨ s4 )

Selector variables: fresh, leftmost existential variables added to each input clause. Solving under predefined assignments to selector variables (called assumptions). Setting selector variables to false (true): clauses are enabled (disabled). “Empty clause” contains only selector variables, all of which are assigned false. Lonsing and Egly (TU Wien)

Incremental QBF Solving

14 / 17

Incremental Solving: Deleting Clauses from the Input Formula (2/2) Example (continued) ψ := ∃s1 , s2 , s3 , s4 , x ∀u∃y . (s1 ∨ x ∨ u ∨ ¬y ) ∧ (s2 ∨ x ∨ u ∨ y ) ∧ (s3 ∨ ¬x ∨ ¬u ∨ ¬y ) ∧ (> ∨ ¬x ∨ ¬u ∨ y ).

(s1 ∨ x ∨ u ∨ ¬y )

(s2 ∨ x ∨ u ∨ y )

(s3 ∨ ¬x ∨ ¬u ∨ ¬y )

(⊤ ∨ ¬x ∨ ¬u ∨ y )

(s1 ∨ s2 ∨ x ∨ u)

(s3 ∨ ⊤ ∨ ¬x ∨ ¬u)

(s1 ∨ s2 ∨ x )

(s3 ∨ ⊤ ∨ ¬x ) (s1 ∨ s2 ∨ s3 ∨ ⊤)

Setting selector variables to true disables (effectively deletes) input clauses. . . . . . and also depending derived clauses. Selector variables are common in incremental SAT solving.

Lonsing and Egly (TU Wien)

Incremental QBF Solving

14 / 17

Incremental Solving: Adding Clauses to the Input Formula Example (continued) ψ := ∀x ∃y . (x ∨ ¬y ) ∧ (¬x ∨ y ).

ψ[x , y ] = ⊤

ψ[¬x , ¬y ] = ⊤

(x ∧ y )

(¬x ∧ ¬y )

(x )

(¬x ) ∅

Adding clauses to ψi to obtain ψi+1 : for a learned cube C with ψi ` C we might have ψi+1 0 C and ψi+1 6≡sat ψi+1 ∨ C . From ψi to ψi+1 : the set of learned cubes must be maintained. Problem: assignments in model generation rule might no longer be satisfying. Selector variables not directly applicable (initial cubes are derived on-the-fly). In DepQBF: only derivable initial cubes are kept. Lonsing and Egly (TU Wien)

Incremental QBF Solving

15 / 17

Incremental Solving: Adding Clauses to the Input Formula Example (continued) ψ := ∀x ∃y . (x ∨ ¬y ) ∧ (¬x ∨ y ) ∧ (x ∨ y ).

ψ[x , y ] = ⊤

ψ[¬x , ¬y ] = ⊥

(x ∧ y )

X X   (¬x ∧X¬y X  X)

(x )

H ) (¬x H  A∅

Adding the clause (x ∨ y ) produces an unsatisfiable formula. Adding clauses to ψi to obtain ψi+1 : for a learned cube C with ψi ` C we might have ψi+1 0 C and ψi+1 6≡sat ψi+1 ∨ C . From ψi to ψi+1 : the set of learned cubes must be maintained. Problem: assignments in model generation rule might no longer be satisfying. Selector variables not directly applicable (initial cubes are derived on-the-fly). In DepQBF: only derivable initial cubes are kept. Lonsing and Egly (TU Wien)

Incremental QBF Solving

15 / 17

Experiments QBFEVAL’12-SR-Bloqqer discard LC keep LC 39.75 × 106 34.03 × 106 1.71 × 106 1.65 × 106 117,019 91,737 10,322 8,959 100.15 95.36 4.18 2.83

a: ˜ a: b: ˜ b: t: ˜t :

diff.(%) -14.40 -3.62 -21.61 -13.19 -4.64 -32.29

a: ˜ a: b: ˜ b: t: ˜t :

QBFEVAL’12-SR-Bloqqer discard LC keep LC diff.(%) 5.88 × 106 1.29 × 106 -77.94 103,330 8,199 -92.06 31,489 3,350 -89.37 827 5 -99.39 30.29 9.78 -67.40 0.50 0.12 -76.00

˜ and wall clock time Average and median number of assignments (a and ˜ a, respectively), backtracks (b, b), (t, ˜t ) in seconds on fully solved sequences of PCNFs.

Left: Solving sequences S = ψ0 , . . . , ψ10 of PCNFs, where clauses are only added to ψi to obtain ψi+1 . Learned constraints are discarded (discard LC) and correct ones are kept (keep LC). Right: Solving the reversed sequences S 0 = ψ9 , . . . , ψ0 of PCNFs after the original sequence S = ψ0 , . . . , ψ9 , ψ10 has been solved, where clauses are only deleted from ψi+1 to obtain ψi . Lonsing and Egly (TU Wien)

Incremental QBF Solving

16 / 17

Experiments QBFEVAL’12-SR-Bloqqer discard LC keep LC 39.75 × 106 34.03 × 106 1.71 × 106 1.65 × 106 117,019 91,737 10,322 8,959 100.15 95.36 4.18 2.83

a: ˜ a: b: ˜ b: t: ˜t :

diff.(%) -14.40 -3.62 -21.61 -13.19 -4.64 -32.29

a: ˜ a: b: ˜ b: t: ˜t :

QBFEVAL’12-SR-Bloqqer discard LC keep LC diff.(%) 5.88 × 106 1.29 × 106 -77.94 103,330 8,199 -92.06 31,489 3,350 -89.37 827 5 -99.39 30.29 9.78 -67.40 0.50 0.12 -76.00

˜ and wall clock time Average and median number of assignments (a and ˜ a, respectively), backtracks (b, b), (t, ˜t ) in seconds on fully solved sequences of PCNFs.

Left: Solving sequences S = ψ0 , . . . , ψ10 of PCNFs, where clauses are only added to ψi to obtain ψi+1 . Learned constraints are discarded (discard LC) and correct ones are kept (keep LC). Right: Solving the reversed sequences S 0 = ψ9 , . . . , ψ0 of PCNFs after the original sequence S = ψ0 , . . . , ψ9 , ψ10 has been solved, where clauses are only deleted from ψi+1 to obtain ψi . Lonsing and Egly (TU Wien)

Incremental QBF Solving

16 / 17

Conclusions Incremental QBF Solving: Useful for solving sequences of related formulas. Benefits from similarity between formulas. Tight integration into tool frameworks: library API, reduced I/O overhead. Challenge: keeping learned constraints. Further incremental QBF applications and case studies needed. DepQBF: Open source incremental QBF solver implemented in C. API to add sets of clauses in a stack-based way (push/pop). Related papers: AISC 2014 (accepted): case study of conformant planning by incremental QBF solving. ICMS 2014: API example, further experiments [LE14].

DepQBF Source Code: http://lonsing.github.io/depqbf/

Lonsing and Egly (TU Wien)

Incremental QBF Solving

17 / 17

Conclusions Incremental QBF Solving: Useful for solving sequences of related formulas. Benefits from similarity between formulas. Tight integration into tool frameworks: library API, reduced I/O overhead. Challenge: keeping learned constraints. Further incremental QBF applications and case studies needed. DepQBF: Open source incremental QBF solver implemented in C. API to add sets of clauses in a stack-based way (push/pop). Related papers: AISC 2014 (accepted): case study of conformant planning by incremental QBF solving. ICMS 2014: API example, further experiments [LE14].

DepQBF Source Code: http://lonsing.github.io/depqbf/

Lonsing and Egly (TU Wien)

Incremental QBF Solving

17 / 17

M. Cadoli, A. Giovanardi, and M. Schaerf. An Algorithm to Evaluate Quantified Boolean Formulae. In AAAI/IAAI, pages 262–267, 1998. M. Davis, G. Logemann, and D. Loveland. A Machine Program for Theorem-proving. Commun. ACM, 5(7):394–397, 1962. Niklas Eén and Niklas Sörensson. Temporal Induction by Incremental SAT Solving. Electr. Notes Theor. Comput. Sci., 89(4):543–560, 2003. Florian Lonsing and Uwe Egly. Incremental QBF Solving by DepQBF. In Hoon Hong and Chee Yap, editors, ICMS, volume 8592 of Lecture Notes in Computer Science, pages 307–314. Springer, 2014. Paolo Marin, Christian Miller, Matthew D. T. Lewis, and Bernd Becker. Verification of Partial Designs using Incremental QBF Solving. In Wolfgang Rosenstiel and Lothar Thiele, editors, DATE, pages 623–628. IEEE, 2012. Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. Ultimately incremental sat. In Carsten Sinz and Uwe Egly, editors, SAT, volume 8561 of Lecture Notes in Computer Science, pages 206–218. Springer, 2014. Lonsing and Egly (TU Wien)

Incremental QBF Solving

17 / 17