31
© 2015 Carnegie Mellon University Parametric Symbolic Reachability Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Arie Gurfinkel ongoing work with Sharon Shoham-Buchbinder

Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

© 2015 Carnegie Mellon University

Parametric Symbolic Reachability

Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Arie Gurfinkel ongoing work with Sharon Shoham-Buchbinder

Page 2: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

2 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Copyright 2015 Carnegie Mellon University This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This material has been approved for public release and unlimited distribution. This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at [email protected]. DM-0002754

Page 3: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

3 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

SYMBOLIC REACHABILITY

Page 4: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

4 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Symbolic Reachability Problem

P = (V, Init, Tr, Bad) P is UNSAFE if and only if there exists a number N s.t. P is SAFE if and only if there exists a safe inductive invariant Inv s.t.

Inductive

Safe

Init(X0) ^

N�1̂

i=0

Tr(Xi, Xi+1)

!^ Bad(XN ) 6) ?

Init ) Inv

Inv(X) ^ Tr(X,X 0) ) Inv(X 0)

Inv ) ¬Bad

Page 5: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

5 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Constrained Horn Clauses (CHC)

A Constrained Horn Clause (CHC) is a FOL formula of the form

8 V . (Á Æ p1[X1] Æ…Æ pn[Xn] → h[X]), where • Á is a constrained in the background theory A • A is a combined theory of Linear Arithmetic, Arrays, Bit-Vectors, … •  p1, …, pn, h are n-ary predicates • pi[X] is an application of a predicate to first-order terms

Page 6: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

6 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

CHC Terminology

Rule h[X] Ã p1[X1],…, pn[Xn], Á.

Query false à p1[X1],…, pn[Xn], Á.

Fact h[X] Ã Á.

Linear CHC h[X] Ã p[X1], Á.

Non-Linear CHC h[X] Ã p1[X1],…, pn[Xn], Á. for n > 1

head body constraint

Page 7: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

7 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Example Horn Encoding

int x = 1;int y = 0;while (⇤) {

x = x+ y;y = y + 1;

}assert(x � y);

l0 :x = 1y = 0

l1 : b1 = nondet()

l2 :x = x+ y

y = y + 1

l3 :b2 = x � y

l4 : lerr :

T

F

T F

h1i p0.h2i p1(x, y)

p0, x = 1, y = 0.h3i p2(x, y) p1(x, y) .h4i p3(x, y) p1(x, y) .h5i p1(x0

, y

0) p2(x, y),x

0 = x+ y,

y

0 = y + 1.h6i p4 (x � y), p3(x, y).h7i perr (x < y), p3(x, y).h8i p4 p4.h9i ? perr.

Page 8: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

8 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

CHC Satisfiability

A model of a set of clauses ¦ is an interpretation of each predicate pi that makes all clauses in ¦ valid A set of clauses is satisfiable if it has a model, otherwise unsatisfiable A model is A-definable, it each pi is definable by a formula Ãi in A In the context of program verification •  a program satisfies a property iff corresponding CHCs are satisfiable •  verification certificates correspond to models of CHC •  counterexamples correspond to derivations of false

Page 9: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

9 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Spacer: Solving CHC in Z3

Spacer: a solver for SMT-constrained Horn Clauses •  stand-alone implementation in a fork of Z3 •  http://bitbucket.org/spacer/code

Support for Non-Linear CHC •  model procedure summaries in inter-procedural verification conditions •  model assume-guarantee reasoning •  uses MBP to under-approximate models for finite unfoldings of predicates •  uses MAX-SAT to decide on an unfolding strategy

Supported SMT-Theories •  Best-effort support for arbitrary SMT-theories – data-structures, bit-vectors, non-linear arithmetic

•  Full support for Linear arithmetic (rational and integer) •  Quantifier-free theory of arrays – only quantifier free models with limited applications of array equality

Page 10: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

10 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

http://seahorn.github.io  

Page 11: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

11 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

PARAMETRIC SYMBOLIC REACHABILITY

Page 12: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

12 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

What we want to do …

A. Cohen, K. S. Namjoshi: Local proofs for global safety properties. FMSD 34(2): 104-125 (2009)

Page 13: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

13 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

What we want to do …

Page 14: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

14 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Parametric Symbolic Reachability Problem

T = ( v, Init(v), Tr(i, N, v, v’), Bad (v) ) •  v is a set of state variables – each vk 2 v is a map Nat→Rat – v is partitioned into Local(v) and Global(v)

•  Init(v) and Bad(v) are initial and bad states, respectively •  Tr(i, N, v, v’) is a transition relation, parameterized by a process identifier i

and total number of processes N All formulas are over the combined theories of arrays and LRA Init(v) and Bad(v) contain at most 2 quantifiers •  Init(v) = 8 x,y . ϕInit(x, y, v), where ϕInit is quantifier free (QF) •  Bad(v) = 8 x,y . ϕBad(x, y, v), where ϕBad is QF

Tr contains at most 1 quantifier •  Tr(i, N, v, v’) = 8 j . ½ (i, j, N, v, v’)

Page 15: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

15 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

A State of a Parametric System

PID Global Local v0 v1 v2 v3 v4 v5 v6 v7 v8 v9

0 1 2 3 4 5 6 … N

Page 16: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

16 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Extra restrictions on the transition relation

Parametricity •  Tr depends only on first N entries of each state variable

Locality •  Tr does not modify local variables of other proceses

(Optional) Single-writer •  Every state-variable (including global) is written by exactly one process

(8j 2 [0..N) . v(j) = u(j)) ) (Tr(i, N,v,v0) () Tr(i, N,u,v0))

Tr(i, N,v,v0) ) (8j . j 6= i ) Local(v)(j) = Local(v0)(j))

Tr(i, N,v,v0) ) (8j 2 [0..N) . j 6= i ) v(j) = v0(j))

Page 17: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

17 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Parametric Symbolic Reachability

T = (v, Init, Tr, Bad) T is UNSAFE if and only if there exists a number K s.t. T is SAFE if and only if there exists a safe inductive invariant Inv s.t.

Init(v0) ^ (^

s2[0,K)

Tr(is, N,vs,vs+1)) ^ Bad(vK) 6) ?

Init(v) ) Inv(v)

Inv(v) ^ Tr(i, N,v,v0) ) Inv(v0)

Inv(v) ) ¬Bad(v)Safe(T)

Page 18: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

18 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Parametric vs Non-Parametric Reachability

Init, Bad, and Tr might contain quantifiers •  e.g., “ALL processes start in unique locations” •  e.g., “only make a step if ALL other processes are ok” •  e.g., “EXIST two distinct process in a critical section”

Inv cannot be assumed to be quantifier free •  QF Inv is either non-parametric or trivial

Decide existence of quantified models for CHC •  stratify search by the number of quantifiers •  models with 1 quantifier, 2 quantifiers, 3 quantifiers, etc…

Init(v) ) Inv(v)

Inv(v) ^ Tr(i, N,v,v0) ) Inv(v0)

Inv(v) ) ¬Bad(v)Safe(T)

Page 19: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

19 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

ONE QUANTIFIER TWO QUANTIFIER

Page 20: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

20 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

One Quantifier (Solution)

Claim •  If Safe1(T) is QF-SAT then Safe(T) is SAT •  If Tr does not contain functions that range over PIDs, then Safe1(T) is QF-

SAT only if Safe(T) admits a model definable with a single quantifier Safe1(T) is essentially Owicki-Gries for 2 processes i and j If Tr is single-writer then the 3rd rule is not needed •  get linear CHC

Safe1(T)

Init(i,v) =) Inv1(i,v)

Inv1(i,v) ^ Tr(i,v,v0) =) Inv1(i,v0)

j 6= i ^ Inv1(i,v) ^ Inv1(j,v) ^ Tr(j,v,v0) =) Inv1(i,v0)

Inv1(i,v) ^ Inv1(j,v) =) ¬Bad(i, j,v)

Page 21: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

21 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

One Quantifier explained (induction rule)

( plug 8j.Inv1(j, v) for Inv(v) ) ( instantiate j by k and i ) Unless Tr contains other PIDs, no other instantiations are possible Split into two rules using i=k If Tr contains quantifiers, they can be instantiated using i and k as well

Inv1(k,v) ^ Inv1(i,v) ^ Tr(i,v,v0) ) Inv1(k,v0)

(8j . Inv1(j,v)) ^ Tr(i,v,v0) ) Inv1(k,v0)

Inv(v) ^ Tr(i,v,v0) ) Inv(v0)

Page 22: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

22 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Two Quantifier (Solution)

Claim •  assume that Tr satisfies single-writer, then •  If Safe2(T) is QF-SAT then Safe(T) is SAT •  If Tr does not contain functions that range over PIDs, then Safe2(T) is QF-

SAT only if Safe(T) admits a model definable with at most two quantifier Single-writer => linear CHC •  still working out good solution for general case

Safe2(T)

i 6= j ^ Init(i, j,v) ^ Init(j, i,v) ) Inv2(i, j,v)

i 6= j ^ Inv2(i, j,v) ^ Tr(i,v,v0) ) Inv2(i, j,v0)

i 6= j ^ Inv2(i, j,v) ^ Tr(j,v,v0) ) Inv2(i, j,v0)

i 6= j ^ Inv2(i, j,v) ) ¬Bad(i, j,v)

Page 23: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

23 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Symmetric Models

Definition •  A formula ϕ(x,y) is symmetric in (x,y) iff ϕ(x,y) , ϕ(y,x)

Claim •  A set of CHC S admits a quantified model of the form 8 x, y. M(x, y) iff •  S admits a quantified model of the form 8 x, y. x ≠ y ) H(x,y), •  where H(x,y) is symmetric in (x, y) •  (assuming that the sort of x,y is ¸ 2)

Page 24: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

24 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Two Quantifier Explained (induction rule)

(plug 8x,y.x≠y ) Inv2(x,y,v) for Inv(v) ) (by symmetry, only need 3 instantiations (h,j) , (i, h), (i, j)) (split based on i≠hÆi≠j , i ≠ h, i ≠ j )

Inv(v) ^ Tr(i,v,v0) ) Inv(v0)

�(8x, y . x 6= y ) Inv2(x, y,v)) ^ Tr(i,v,v0) ^ h 6= j

�=) Inv2(h, j,v

0)

�h 6= j ^ Inv2(h, j,v) ^

(i 6= h ) Inv2(i, h,v)) ^ (i 6= j ) Inv2(i, j,v)) ^Tr(i,v,v0)

�=) Inv2(h, j,v

0)

Page 25: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

25 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Two quantifiers explained (cont’d)

h 6= j ^ Inv2(h, j,v) ^ i 6= h ^ Inv2(i, h,v) ^i 6= j ^ Inv2(i, j,v) ^ Tr(i,v,v0) =) Inv2(h, j,v

0)

h 6= j ^ Inv2(h, j,v) ^ Inv2(h, j,v) ^ Tr(h,v,v0) =) Inv2(h, j,v0)

h 6= j ^ Inv2(h, j,v) ^ Inv2(j, h,v) ^ Tr(j,v,v0) =) Inv2(h, j,v0)

single-writer

duplicate

symmetry

Page 26: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

26 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Two Quantifiers (repeated)

Claim •  assume that Tr satisfies single-writer, then •  If Safe2(T) is QF-SAT then Safe(T) is SAT •  If Tr does not contain functions that range over PIDs, then Safe2(T) is QF-

SAT only if Safe(T) admits a model definable with at most two quantifier Single-writer => linear CHC •  still working out good solution for general case

Safe2(T)

i 6= j ^ Init(i, j,v) ^ Init(j, i,v) ) Inv2(i, j,v)

i 6= j ^ Inv2(i, j,v) ^ Tr(i,v,v0) ) Inv2(i, j,v0)

i 6= j ^ Inv2(i, j,v) ^ Tr(j,v,v0) ) Inv2(i, j,v0)

i 6= j ^ Inv2(i, j,v) ) ¬Bad(i, j,v)

Page 27: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

27 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

What we can do now

Peterson’s protocol J •  and similar small protocols

Input problem T •  Init, Transition, and Bad •  in (extension of) SMT-LIB format •  over combined theory of Linear Arithmetic and Arrays

Generate Constrained Horn Clauses •  Safe1(T) or Safe2(T)

Solve using QF CHC solver •  Spacer works for small protocols

Page 28: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

28 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Related Work

Kedar Namjoshi et al. •  Local Proofs for Global Safety Properties, and many other papers •  systematic derivation of proof rules for concurrent systems •  finite state and fixed number of processes

Andrey Rybalchenko et al. •  Compositional Verification of Multi-Threaded Programs, and others •  compositional proof rules for concurrent systems are CHC •  infinite state and fixed number of processes

Lenore Zuck et al. •  Invisible Invariants •  finite state and parametric number of processes •  finite model theorem for special classes of parametric systems

Nikolaj Bjørner, Kenneth L. McMillan, and Andrey Rybalchenko •  On Solving Universally Quantified Horn Clauses. SAS 2013:

Page 29: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

29 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Conclusion

Parametric Verification == Quantified Models for CHC Quantifier instantiation to systematically derive proof rules for verification of safety properties of parametric systems •  parametric systems definable with SMT-LIB syntax

Lazy vs Eager Quantifier Instantiation •  eager instantiation in this talk •  “easy” to extend to lazy / dynamic / model-based instantiation

Connections with other work in parametric verification •  complete instantiation = decidability ? •  relative completeness • …

Page 30: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

30 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Page 31: Parametric Symbolic Reachability - Arie GurfinkelDecide existence of quantified models for CHC • stratify search by the number of quantifiers • models with 1 quantifier, 2 quantifiers,

31 Parametric Symbolic Reachability Gurfinkel, 2015

© 2015 Carnegie Mellon University

Contact Information

Arie Gurfinkel, Ph. D. Sr. Researcher CSC/SSD Telephone: +1 412-268-5800 Email: [email protected]

U.S. Mail Software Engineering Institute Customer Relations 4500 Fifth Avenue Pittsburgh, PA 15213-2612 USA

Web www.sei.cmu.edu www.sei.cmu.edu/contact.cfm

Customer Relations Email: [email protected] Telephone: +1 412-268-5800 SEI Phone: +1 412-268-5800 SEI Fax: +1 412-268-6257