10.07.2015 Views

Classifying and Solving Horn Clauses for Verification - Lab for ...

Classifying and Solving Horn Clauses for Verification - Lab for ...

Classifying and Solving Horn Clauses for Verification - Lab for ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

12 Rümmer, Hojjat, Kuncaktruen 8 ≤ 0n 9 ≤ −1 ∨ (rec 9 = 1 ∧ n 9 = 0)x 2 ≥ 0n f ≤ −1 ∨ (rec f = 1 ∧ n f = 0)res 3 = x 3 + 1falseFig. 5. Tree interpolant solving the interpolation problem in Fig. 4The UFO verification system [3] is able to compute DAG interpolants, based onthe interpolation functionality of MathSAT [9]. We can observe that DAG interpolants(despite their name) are incomparable in expressiveness to tree interpolation. This isbecause DAG interpolants correspond to linear <strong>Horn</strong> clauses, <strong>and</strong> might have sharedrelation symbol in bodies, while tree interpolants correspond to possibly nonlinear treelike<strong>Horn</strong> clauses, but do not allow shared relation symbols in bodies.Encoding of restricted DAG interpolants as linear <strong>Horn</strong> clauses. For every v ∈ V, let{ ¯x v } = ( ⋃fv(L E (a, v)) ) ∩ ( ⋃fv(L E (v, a)) )(a,v)∈E(v,a)∈Ebe the variables allowed in the interpolant to be computed <strong>for</strong> v, <strong>and</strong> p v be a freshrelation symbol of arity | ¯x v |. The interpolation problem is then defined by the followingset of linear <strong>Horn</strong> clauses:For each (v, w) ∈ E: L V (v) ∧ L E (v, w) ∧ p v ( ¯x v ) → p w ( ¯x w ),L V (v) ∧ ¬L V (w) ∧ L E (v, w) ∧ p v ( ¯x v ) → false,For en, ex ∈ V: true → p en ( ¯x en ), p ex ( ¯x ex ) → falseEncoding of linear <strong>Horn</strong> clauses as DAG interpolants. Suppose HC is a finite, recursionfree,<strong>and</strong> linear set of <strong>Horn</strong> clauses. We can solve the system of <strong>Horn</strong> clauses by computinga DAG interpolant <strong>for</strong> every connected component of the → HC -graph. As inSect. 5.2, we normalise <strong>Horn</strong> clauses according to Def. 2. We also assume that multipleclauses C ∧ p( ¯x p ) → q( ¯x q ) <strong>and</strong> D ∧ p( ¯x p ) → q( ¯x q ) with the same relation symbols aremerged to (C ∨ D) ∧ p( ¯x p ) → q( ¯x q ).Let {p 1 , . . . , p n } be all relation symbols of one connected component. We then definethe DAG interpolation problem (V, E, en, ex), L E , L V by

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!