A Tour of CVC4 Morgan Deters Andrew Reynolds mdeters@cs.nyu.edu - - PowerPoint PPT Presentation

a tour of cvc4
SMART_READER_LITE
LIVE PREVIEW

A Tour of CVC4 Morgan Deters Andrew Reynolds mdeters@cs.nyu.edu - - PowerPoint PPT Presentation

A Tour of CVC4 Morgan Deters Andrew Reynolds mdeters@cs.nyu.edu andrew.reynolds@epfl.ch Tim King tim.king@imag.fr Cesare Tinelli Clark Barrett cesare-tinelli@uiowa.edu barrett@cs.nyu.edu C OLE PO L Y TEC H NIQ U E F DR A LE D E


slide-1
SLIDE 1

A Tour of CVC4

CVC4 is supported in part by the Air Force Office of Scientific Research, Google, Intel Corporation, the National Science Foundation, and Semiconductor Research Corporation

Morgan Deters

mdeters@cs.nyu.edu

Cesare Tinelli

cesare-tinelli@uiowa.edu

Andrew Reynolds

andrew.reynolds@epfl.ch

Clark Barrett

barrett@cs.nyu.edu

ÉC OLE PO L Y TEC H NIQ U E FÉ DÉR A LE D E LA USAN NE

Tim King

tim.king@imag.fr

slide-2
SLIDE 2

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

The CVC4 Team

Clark Barrett (NYU) Cesare Tinelli (U Iowa) Kshitij Bansal (NYU) François Bobot (CEA) Chris Conway (Google) Morgan Deters (NYU) Liana Hadarean (NYU) Dejan Jovanović (SRI) Tim King (Verimag) Tianyi Liang (U Iowa) Andrew Reynolds (EPFL)

2

slide-3
SLIDE 3

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Agenda

  • Introduction and status report for CVC4
  • Arithmetic
  • Quantifiers (finite model finding)
  • Examples/demos

3

slide-4
SLIDE 4

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Automated Reasoning

  • Historically automated reasoning meant

uniform proof procedures for FOL

  • More recent trend is decidable fragments

– Domain-specific reasoning – Equality – Arithmetic – Data structures (arrays, lists, records)

4

slide-5
SLIDE 5

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Automated Reasoning

  • Examples

– SAT – propositional, Boolean reasoning

  • efficient
  • expressive (NP) but involved encodings

– SMT – first order, Boolean + DS reasoning

  • loss of efficiency
  • improves expressivity and scalability

5

slide-6
SLIDE 6

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Articles mentioning SMT over time

0 ¡ 200 ¡ 400 ¡ 600 ¡ 800 ¡ 1000 ¡ 1200 ¡ 1400 ¡ 1600 ¡ 2005 ¡ 2006 ¡ 2007 ¡ 2008 ¡ 2009 ¡ 2010 ¡ 2011 ¡ 2012 ¡ 2013 ¡ 2014 ¡

6

slide-7
SLIDE 7

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Applications of SMT

  • extended static checking
  • predicate abstraction
  • model checking
  • scheduling
  • test generation
  • synthesis
  • (in)feasible paths
  • verification

7

slide-8
SLIDE 8

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

More on Expressivity

  • Many theories of interest have efficient

decision procedures for conjunctions of facts

  • …but in practice we need arbitrary Boolean

combinations

– also combined theory constraints – quantifiers

8

slide-9
SLIDE 9

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Architecture of SMT

9

slide-10
SLIDE 10

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

History of CVC

l SVC – 1996, own SAT solver l CVC – Chaff, optimized internal design l CVC Lite – 2003, rewrite to make more flexible

  • supported quantifiers

l CVC3 – major overhaul

  • better DP implementations

l CVC4 – first stable release 2012

10

slide-11
SLIDE 11

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC3 to CVC4

l CVC3 was very featureful…

l support for many theories, proofs, quantifiers…

l But also suffered from serious problems

  • performance was problematic

11

slide-12
SLIDE 12
slide-13
SLIDE 13

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC3 to CVC4

l CVC3 was very featureful…

l support for many theories, proofs, quantifiers…

l But also suffered from serious problems

  • performance was problematic
  • very difficult to extend for research
  • could not rapidly prototype new ideas

13

slide-14
SLIDE 14

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC4

  • Complete redesign of internal architecture
  • Five years in the making
  • Performance a big improvement

– placed 1st in 14 of 32 divisions of SMT-COMP – performs well also in CASC – competitive for many common SMT uses

  • …without sacrificing features

14

slide-15
SLIDE 15

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC4 is Expressive

  • Boolean combinations of theory constraints
  • Combination of theories

– arrays of integers, functions on arrays, …

  • Quantifiers
  • Verification, test generation, synthesis,

feasibility

  • Models, proofs, unsatisfiable cores

15

slide-16
SLIDE 16

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC4 is Expressive

  • (Linear) arithmetic over integer, rational
  • Bitvectors
  • Strings
  • Functions
  • Arrays
  • Inductive datatypes
  • Finite sets

16

slide-17
SLIDE 17

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC4 is Expressive

  • Quantifiers
  • If CVC4 doesn’t have support for a theory,

– axiomatize it

17

slide-18
SLIDE 18

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Standardization

  • Fully supports SMT-LIB standard

– v1.2, v2.0, v2.5 (draft) – supports much of Z3’s extended command set

  • Supports native CVC format
  • Supports TPTP format

18

slide-19
SLIDE 19

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

SMT-LIB – http://smt-lib.org

  • International initiative
  • Rigorously standardize descriptions of

background theories for SMT

  • Promote common syntax for SMT interactions
  • Benchmarks
  • Annual competition

19

slide-20
SLIDE 20

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

SMT-LIB Command Language

  • Declaring a logic
  • Setting an option
  • Declaring constants
  • Making assertions

20

(declare-fun p () Bool) (set-option :produce-models true) (set-logic QF_UF) (assert (or p q))

slide-21
SLIDE 21

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

SMT-LIB Command Language

  • Checking satisfiability
  • Extracting a model

21

(check-sat) (get-model)

slide-22
SLIDE 22

SMT-LIB example

slide-23
SLIDE 23

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

New and Upcoming Features

  • Theory of strings
  • Theory of finite sets
  • Theory of floating point
  • Unsatisfiable cores (for all theories)
  • Proofs (under development, for some theories)
  • Better control of preprocessing

23

slide-24
SLIDE 24

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Longer term

  • More theories
  • Increased proof support
  • Automatic configuration of heuristics
  • Quantifier elimination
  • Optimization problems

24

slide-25
SLIDE 25

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Certificates

  • Satisfiable comes with a satisfying model
  • Unsatisfiable comes with a proof (or core)
  • Both are fully machine-checkable

– CVC4 need not be certified free of bugs to rely upon a result

25

slide-26
SLIDE 26

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

http://cvc4.cs.nyu.edu/tryit/

26

slide-27
SLIDE 27

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Circuit example

test is always supposed to be true When does it hold? How do we prove it? One way: by induction on number

  • f clock cycles

Inductive step: If test is true, it remains so

27

slide-28
SLIDE 28

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡ 28

Circuit example

slide-29
SLIDE 29

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡ 29

Circuit example

slide-30
SLIDE 30

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡ 30

Circuit example

(model (define-fun x () Int (- 2)) (define-fun y () Int (- 1)) (define-fun z () Int 0) (define-fun |x'| () Int (- 2)) (define-fun |y'| () Int (- 1)) (define-fun |z'| () Int (- 2)) (define-fun a () Bool true) )

slide-31
SLIDE 31

Arithmetic

slide-32
SLIDE 32

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Arithmetic in CVC4

l Quantifier-free linear real and integer

arithmetic

QF_LRA, QF_LIA, QF_LIRA

l Constraints of the form:

x – y ≥ -1, y ≤ 4, x != 5, x + y ≥ 6, x < 5 …

l Supports efficient theory combination:

UF, Arrays, Sets, Datatypes

32

slide-33
SLIDE 33

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Linear Real Arithmetic

l Given the linear inequalities

{x – y ≥ -1, y ≤ 4, x + y ≥ 6} is there an assignment to x and y that makes all of the inequalities true?

l Solve using simplex based approaches

33

slide-34
SLIDE 34

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Visually

Is an intersection of half planes empty?

34

slide-35
SLIDE 35

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Example Simplex Search

35

slide-36
SLIDE 36

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Simplex Solvers in CVC4

l 3 exact precision DPs

  • Simplex for DPLL(T)
  • Sum-Of-Infeasibilities (SOI) Simplex

[FMCAD'13]

  • FCSimplex (variant of SOI simplex)

l External floating point solver GLPK

36

slide-37
SLIDE 37

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Simplex for DPLL(T)

l [CAV'06 Dutertre & de Moura] l Highly incremental

  • Resumes from previous assignment
  • No backtracking the tableau

l Run after each new constraint l Good on verification problems

37

slide-38
SLIDE 38

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Sum-of-infeasibilities Simplex

l Adds an optimization function V(X) l V(X) is the total amount bounds are violated l Minimizes V(X) using primal simplex l “--use-soi” l Heavy hammer

38

slide-39
SLIDE 39

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Direction of Vio(X)

39

slide-40
SLIDE 40

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Leveraging LP & MIP for SMT

l GPLK is an LP/MIP Solver l ‘Call GLPK if the problem seems hard’ l “--use-approx” l Very heavy hammer l See my talk Thursday l Compile against:

https://github.com/timothy-king/glpk-cut-log

40

slide-41
SLIDE 41

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

From Reals to Mixed Integers

l Add IsInt(x) constraints l First solve real relaxation

  • Ignore IsInt(x) constraints

l If real relaxation is sat:

  • check if assignment from Simplex a(x) satisfies

IsInt(x) constraints

  • Refine by branching:

x≥ 2 or x ≤ 1 Cuts from Proofs [Dillig’06]

41

slide-42
SLIDE 42

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

ITE Preprocessing

l ITE cofactoring [Kim et al. ’09] l Lifting sums out of ites

(ite c (+ x s) (+ x t) ) →x + (ite c s t)

l GCD factorization

(ite c 0 (ite d 1024 2048)) → 1024 * (ite c 0 (ite d 1 2))

42

slide-43
SLIDE 43

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Non-linear support in CVC4

l Extremely rudimentary support

  • Parsing, rewriting, solving
  • No models

l Rewrites terms into sum of monomials form

(x+y)(x-y)→ x*x - y*y

l Abstracts each monomial as a fresh variable

  • x*x, x*y, x*x*y are all new variables

l Usable if you instantiate axioms manually l (may improve in the future)

43

slide-44
SLIDE 44

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Optimization

l (Coming soon) l Primal Simplex is implemented l Not yet user accessible l Will implement

l Linear Search [Sebastiani ’12] l Symba [Li et al. ’14]

44

slide-45
SLIDE 45

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

CVC4’s Arithmetic Module

l Optimized for challenging QF_LRA and

QF_LIA non-incremental benchmarks

l On the lookout for collaborations to motivate

improvements

l For hard linear problems, try:

“--use-soi” or “--use-approx”

45

slide-46
SLIDE 46

Quantifiers

slide-47
SLIDE 47

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Quantified Formulas in CVC4

  • CVC4 supports multiple techniques :

– E-matching – Conflict-based instantiation [FMCAD 2014] – Rewrite rules – Induction – Finite Model Finding

⇒ Focus in this tutorial

47

slide-48
SLIDE 48

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Overview : Finite Model Finding

  • Finite Model Finding in SMT

– Reduction from quantified → ground constraints

  • Two techniques for scalability:

– Minimizing model sizes – Model-based quantifier instantiation

  • Variants of approach/Examples

48

slide-49
SLIDE 49

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

  • To determine the satisfiability of:

Finite Model Finding in SMT

G

∀xy:S.Q(x,y)

For ¡all ¡x,y ¡of ¡sort ¡S

49

slide-50
SLIDE 50

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

  • To determine the satisfiability of:

Finite Model Finding in SMT

G

∀xy:S.Q(x,y)

For ¡all ¡x,y ¡of ¡sort ¡S

⇒ If ¡S ¡has ¡finite ¡interpreta/on, ¡ ¡

  • ¡use ¡finite ¡model ¡finding ¡ ¡

50

slide-51
SLIDE 51

¡ ¡ ¡ ¡CVC4 ¡ Finite Model Finding in SMT

51

Ground ¡ Theory ¡Solvers ¡

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

slide-52
SLIDE 52

Finite Model Finding in SMT

52

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e}

Ground ¡ Theory ¡Solvers ¡

UNSAT ¡

SAT ¡

slide-53
SLIDE 53

Finite Model Finding in SMT

  • Reduce quantified formula to ground formula(s)

53

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e}

Q(a,a)∧ … Q(e,a)∧ Q(a,b)∧ . Q(a,c)∧ . Q(a,d)∧ . Q(a,e)∧ … Q(e,e)

Ground ¡ Theory ¡Solvers ¡

∧ ¡

slide-54
SLIDE 54

Finite Model Finding in SMT

  • Check satisfiability of G∧Q(a,a)∧…∧Q(e,e)

54

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e}

Q(a,a)∧ … Q(e,a)∧ Q(a,b)∧ . Q(a,c)∧ . Q(a,d)∧ . Q(a,e)∧ … Q(e,e)

Ground ¡ Theory ¡Solvers ¡

UNSAT ¡

∧ ¡ SAT ¡

slide-55
SLIDE 55

Finite Model Finding in SMT

55

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e}

Q(a,a)∧ … Q(e,a)∧ Q(a,b)∧ . Q(a,c)∧ . Q(a,d)∧ . Q(a,e)∧ … Q(e,e)

Ground ¡ Theory ¡Solvers ¡

UNSAT ¡ SAT ¡

∧ ¡ SAT ¡

slide-56
SLIDE 56

Finite Model Finding in SMT

56

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e}

Q(a,a)∧ … Q(e,a)∧ Q(a,b)∧ . Q(a,c)∧ . Q(a,d)∧ . Q(a,e)∧ … Q(e,e)

  • ¡Can ¡be ¡very ¡large ¡

Ground ¡ Theory ¡Solvers ¡

UNSAT ¡ SAT ¡

∧ ¡ SAT ¡

slide-57
SLIDE 57

Scalable Approach to FMF

  • Address large # instantiations by:
  • 1. Minimizing model sizes
  • 2. Only consider instantiations that refine

model

  • Model-based quantifier instantiation

– [Ge/deMoura CAV 2009]

57

slide-58
SLIDE 58
  • 1. Minimize model size (Example)
  • For G={a≠b,b≠c,c≠d,d≠e,e≠a}

58

a b c d e ≠

slide-59
SLIDE 59
  • 1. Minimize model size (Example)
  • Has model of size 5:

a b c d e ≠

S={a,b,c,d,e}

⇒ ¡

slide-60
SLIDE 60
  • 1. Minimize model size (Example)
  • Can identify a=d,c=e

60

a b c d e ≠

slide-61
SLIDE 61
  • 1. Minimize model size (Example)
  • Also has model of size 3:

a b c d e ≠ = =

S={a,b,c}

⇒ ¡

slide-62
SLIDE 62
  • 1. Minimize model size
  • UF+cardinality constraints [CAV 2013]

62

|S| ¡≤ 1 ¡ ¬|S| ¡≤ 1 ¡ Search ¡for ¡ ¡ models ¡ ¡ where ¡|S|=1 ¡ If ¡none ¡exist, ¡ search ¡for ¡ ¡ models ¡ ¡ where ¡|S|=2 ¡

  • etc. ¡

|S| ¡≤ 2 ¡ ¬|S| ¡≤ 2 ¡ |S| ¡≤ 3 ¡ ¬|S| ¡≤ 3 ¡

slide-63
SLIDE 63
  • 2. Model-Based Quantifier Instantiation
  • Construct candidate model M

63

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e} {Q→QM,…}

Ground ¡ Theory ¡Solvers ¡

M

slide-64
SLIDE 64
  • 2. Model-Based Quantifier Instantiation
  • Using model, evaluate QM(x,y) [CADE 2013]

64

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e} {Q→QM,…}

Ground ¡ Theory ¡Solvers ¡

y QM a b c d e a b x c d e

T ¡ F ¡ F ¡

slide-65
SLIDE 65
  • 2. Model-Based Quantifier Instantiation
  • If all T instances, M is a model, answer “SAT”

65

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e} {Q→QM,…}

Ground ¡ Theory ¡Solvers ¡

y QM a b c d e a b x c d e

T ¡ F ¡ F ¡

SAT ¡

slide-66
SLIDE 66
  • 2. Model-Based Quantifier Instantiation

66

FMF ¡ Module ¡

G

∀xy:S.Q(x,y)

S={a,b,c,d,e} {Q→QM,…}

Ground ¡ Theory ¡Solvers ¡

y QM a b c d e a b x c d e

T ¡ F ¡ F ¡ Q(b,a) Q(e,e)

  • If all T instances, M is a model, answer “SAT”
  • Else, add (subset of) F instances to G
slide-67
SLIDE 67

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Application : DVF at Intel

  • CVC4+FMF used as a backend for:

– DVF tool at Intel Research

  • Verifying software/hardware architectures

⇒ Required:

  • Scalable methods for finding counterexamples (FMF)
  • Support for many theories (arith, BV, arrays, …)

67

slide-68
SLIDE 68

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Variants of Approach

  • CVC4 has techniques for handling:

– Bounded Integer Quantification – Strings of bounded length – Syntax-Guided Synthesis (in progress)

⇒ Each follow similar pattern

68

slide-69
SLIDE 69

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Variant #1 : Bounded Integers

  • ∀x:Int. 0 ≤ x < t ⇒P(x)

t ¡≤ 0 ¡ ¬t ¡≤ 0 ¡ Search ¡for ¡ ¡ models ¡ ¡ where ¡t=0 ¡ If ¡none ¡exist, ¡ search ¡for ¡ ¡ models ¡ ¡ where ¡t=1 ¡

  • etc. ¡

t ¡≤ 1 ¡ ¬t ¡≤ 1 ¡ t ¡≤ 2 ¡ ¬t ¡≤ 2 ¡

69

slide-70
SLIDE 70

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Variant #2 : Bounded Length Strings

  • Given ¡input ¡F[s1,…,sn] ¡for ¡strings ¡s1…sn: ¡

Σi=1…n|si|≤ 0 ¡ ¬Σi=1…n|si| ¡≤ 0 ¡ Search ¡for ¡ ¡ models ¡ ¡ where ¡sum ¡of ¡ ¡ lengths=0 ¡ Search ¡for ¡ ¡ models ¡ ¡ where ¡sum ¡of ¡ ¡ lengths=1 ¡

  • etc. ¡

Σi=1…n|si| ¡≤ 1 ¡ ¬ Σi=1…n|si| ¡≤ 1 ¡ Σi=1…n|si| ¡≤ 2 ¡ ¬ Σi=1…n|si| ¡≤ 2 ¡

70

slide-71
SLIDE 71

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Variant #3 : Syntax-Guided Synthesis

  • (¬)∃f:Program.∀i.P(f,i)

size(f)≤ 0 ¡ ¬size(f) ¡≤ 0 ¡ Search ¡for ¡ ¡ programs ¡ ¡

  • f ¡size ¡0 ¡

Search ¡for ¡ ¡ programs ¡ ¡

  • f ¡size ¡1 ¡
  • etc. ¡

size(f) ¡≤ 1 ¡ ¬ size(f) ¡≤ 1 ¡ size(f) ¡≤ 2 ¡ ¬ size(f) ¡≤ 2 ¡

⇒ ¡In ¡development ¡

71

slide-72
SLIDE 72

Wrap-up

slide-73
SLIDE 73

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Use in Research

Barrett, Conway, Deters, Hadarean, Jovanović, King, Reynolds, and Tinelli. CVC4. Computer Aided Verification (CAV), 2011. Hadarean, Barrett, Jovanović, Tinelli, and Bansal. A tale of two solvers: Eager and lazy approaches to bit-vectors. Computer Aided Verification (CAV), 2014. Jovanović and Barrett. Being careful about theory combination. Formal Methods in System Design (FMSD), vol. 42, 2013. Jovanović and Barrett. Sharing is caring: combination of theories. Frontiers of Combining Systems (FroCoS), 2011. Jovanović, Barrett, and de Moura. The design and implementation of the model constructing satisfiability

  • calculus. FMCAD, 2013.

King and Barrett. Exploring and categorizing error spaces using BMC and SMT. Satisfiability Modulo Theories (SMT), 2011. King, Barrett, and Dutertre. Simplex with sum of infeasibilities for SMT. Formal Methods in Computer-Aided Design (FMCAD), 2013. King, Barrett, and Tinelli. Leveraging linear and mixed integer programming for SMT. FMCAD, 2014. Liang, Reynolds, Tinelli, Barrett, and Deters. A DPLL(T) theory solver for a theory of strings and regular

  • expressions. Computer Aided Verification (CAV), 2014.

Reynolds, Tinelli, and de Moura. Finding conflicting instances of quantified formulas in SMT. FMCAD, 2014. Reynolds, Tinelli, Goel, and Krstić. Finite model finding in SMT. Computer Aided Verification (CAV), 2013. Reynolds, Tinelli, Goel, Krstić, Deters, and Barrett. Quantifier instantiation techniques for finite model finding in

  • SMT. CADE, 2013.

Wang, Barrett, and Wies. Cascade 2.0. Verification, Model Checking, and Abstract Interpretation (VMCAI), 2014.

73

slide-74
SLIDE 74

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

This week at FMCAD

King, Barrett, and Tinelli. Leveraging Linear and Mixed Integer Programming for SMT. Thursday 1:30pm (just after lunch). Reynolds, Tinelli, and de Moura. Finding Conflicting Instances of Quantified Formulas in SMT. Thursday 3:45pm (final session of the day).

74

slide-75
SLIDE 75

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

We use CVC4, too

cascade ¡h3p://cascade.cims.nyu.edu/ ¡ ¡ Verifica^on ¡pla_orm ¡for ¡C ¡programs. ¡ ¡ Supports ¡a ¡range ¡of ¡data ¡ representa^on ¡and ¡memory ¡models ¡for ¡ precise ¡or ¡abstract ¡analysis. ¡ { ¡KIND ¡} ¡h3p://clc.cs.uiowa.edu/Kind/ ¡ ¡ K-­‑induc^on ¡based ¡model ¡checker ¡for ¡ Lustre ¡programs. ¡ ¡Novel ¡invariant ¡ genera^on ¡techniques. ¡ ¡In ¡use ¡at ¡ Rockwell-­‑Collins. ¡

75

slide-76
SLIDE 76

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Practicalities of using CVC4

  • Open-source (BSD-licensed)
  • Accepted into MacPorts
  • Already in Fedora
  • Debian package built (forthcoming in Debian)

76

slide-77
SLIDE 77

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Easy to use

  • Straightforward API

– follows SMT-LIB command format – C++, Java, …

  • Compatibility support for CVC3’s APIs

– C, C++, and Java

77

slide-78
SLIDE 78

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Well-supported

  • GitHub, Travis-CI
  • Users’ mailing list
  • StackOverflow
  • Bugzilla
  • Nightly development builds
  • …under active development

78

slide-79
SLIDE 79

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

The CVC4 Team

Clark Barrett (NYU) Cesare Tinelli (U Iowa) Kshitij Bansal (NYU) François Bobot (CEA) Chris Conway (Google) Morgan Deters (NYU) Liana Hadarean (NYU) Dejan Jovanović (SRI) Tim King (Verimag) Tianyi Liang (U Iowa) Andrew Reynolds (EPFL)

79

slide-80
SLIDE 80

21 October 2014 – FMCAD 2014 Deters, ¡Reynolds, ¡King, ¡Barre3, ¡Tinelli ¡

Calling all users

  • Always looking for users
  • Always looking for collaborations

http://cvc4.cs.nyu.edu/

80

slide-81
SLIDE 81

Thank you!

CVC4 is supported in part by the Air Force Office of Scientific Research, Google, Intel Corporation, the National Science Foundation, and Semiconductor Research Corporation

Morgan Deters

mdeters@cs.nyu.edu

Cesare Tinelli

cesare-tinelli@uiowa.edu

Andrew Reynolds

andrew.reynolds@epfl.ch

Clark Barrett

barrett@cs.nyu.edu

ÉC OLE PO L Y TEC H NIQ U E FÉ DÉR A LE D E LA USAN NE

Tim King

tim.king@imag.fr