satisfiability modulo theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012....

21
Introduction Applications SMT Solver Use Algorithms Conclusion Satisfiability Modulo Theories Tjark Weber Verification of Erlang Programs Day January 31, 2012 Tjark Weber Satisfiability Modulo Theories

Upload: others

Post on 21-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Satisfiability Modulo Theories

Tjark Weber

Verification of Erlang Programs Day

January 31, 2012

Tjark Weber Satisfiability Modulo Theories

Page 2: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Job-Shop SchedulingBackground Theories

Introduction

Satisfiability Modulo Theories =

Propositional satisfiability background theories

Tjark Weber Satisfiability Modulo Theories

Page 3: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Job-Shop SchedulingBackground Theories

Example: Job-Shop Scheduling

Given: n jobs, each composed of m tasks of varying duration, thatmust be performed consecutively on m machines; a total maximumtime max .

di ,j Machine 1 Machine 2

Job 1 2 1Job 2 3 1Job 3 2 3

max = 8

Is there a schedule such that the end-time of every task is ≤ max?

Tjark Weber Satisfiability Modulo Theories

Page 4: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Job-Shop SchedulingBackground Theories

Job-Shop Scheduling: SMT Encoding

The job-shop scheduling problem has a straightforward encoding inpropositional logic + linear integer arithmetic.

A schedule is specified by the start time ti ,j for the j-th task ofevery job i .

Precedence constraints:ti ,1 ≥ 0 ∧ ti ,2 ≥ ti ,1 + di ,1 ∧ ti ,2 + di ,2 ≤ max (for i = 1, 2, 3)

Resource constraints:(t1,j ≥ t2,j + d2,j ∨ t2,j ≥ t1,j + d1,j) ∧(t1,j ≥ t3,j + d3,j ∨ t3,j ≥ t1,j + d1,j) ∧(t2,j ≥ t3,j + d3,j ∨ t3,j ≥ t2,j + d2,j) (for j = 1, 2)

Tjark Weber Satisfiability Modulo Theories

Page 5: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Job-Shop SchedulingBackground Theories

Job-Shop Scheduling: Solution

SMT formula encoding

di ,j Machine 1 Machine 2

Job 1 2 1Job 2 3 1Job 3 2 3

max = 8

Solution:

t1,1 = 5, t1,2 = 7t2,1 = 2, t2,2 = 6t3,1 = 0, t3,2 = 3

Tjark Weber Satisfiability Modulo Theories

Page 6: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Job-Shop SchedulingBackground Theories

Background Theories

EUF x = y =⇒ f (x) = f (y)

Arithmetic y < 0 =⇒ x + y < x

Arrays select(store(a, i , x), i) = x

Bit-vectors 2 · x = x << 1

Quantifiers

Algebraic data types

. . .

Tjark Weber Satisfiability Modulo Theories

Page 7: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Dynamic Symbolic ExecutionProgram Model CheckingStatic Program AnalysisProgram Verification

Applications

SMT solvers are the core engine of many tools for programanalysis, testing and verification.

Tjark Weber Satisfiability Modulo Theories

Page 8: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Dynamic Symbolic ExecutionProgram Model CheckingStatic Program AnalysisProgram Verification

Dynamic Symbolic Execution

Task: To find input that can steer program execution into specificbranches.

Tjark Weber Satisfiability Modulo Theories

Page 9: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Dynamic Symbolic ExecutionProgram Model CheckingStatic Program AnalysisProgram Verification

Program Model Checking

Task: To prove/refute conjectures about the values of programvariables in order to characterize a finite-state abstraction.

Tjark Weber Satisfiability Modulo Theories

Page 10: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Dynamic Symbolic ExecutionProgram Model CheckingStatic Program AnalysisProgram Verification

Static Program Analysis

Task: To check feasibility of certain program paths.

Tjark Weber Satisfiability Modulo Theories

Page 11: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Dynamic Symbolic ExecutionProgram Model CheckingStatic Program AnalysisProgram Verification

Program Verification

Task: To prove verification conditions that arise from claims offunctional correctness.

Tjark Weber Satisfiability Modulo Theories

Page 12: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

SMT Solver Use

We’ve seen what SMT solvers are good for. How do you actuallyinteract with them?

Tjark Weber Satisfiability Modulo Theories

Page 13: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

The SMT-LIB Language

SMT solvers provide a textual interface. Most solvers support astandard language, SMT-LIB.

SMT-LIB defines

concrete syntax for input formulas, and

a command-based scripting language.

Solver-specific syntax is often available to extend SMT-LIB, e.g.,for data types.

Tjark Weber Satisfiability Modulo Theories

Page 14: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

SMT-LIB: Example

Tjark Weber Satisfiability Modulo Theories

Page 15: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

SMT-LIB: Example (Result)

Tjark Weber Satisfiability Modulo Theories

Page 16: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

Inter-Process Communication

File-based (the basic solution)

Stream-based (when you need online functionality)

Web interface (mostly for quick experiments)

In-memory API (the tightly integrated approach)

. . .

Tjark Weber Satisfiability Modulo Theories

Page 17: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

A Virtuous Circle

enable

SMT solvers Applications

evaluates generate

SMT-COMP Benchmarks

are used in

Tjark Weber Satisfiability Modulo Theories

Page 18: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

Choosing an SMT Solver

There are many good SMT solvers: Barcelogic, CVC, MathSAT,OpenSMT, Yices, Z3, . . .

Differences:

Supported background theories

Platform, license, API, incrementality, quantifiers, . . .

Performance (cf. SMT-COMP)

Tjark Weber Satisfiability Modulo Theories

Page 19: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

The SMT-LIB LanguageInter-Process CommunicationA Virtuous CircleChoosing an SMT Solver

Choosing an SMT Solver

Speaker’s pick:

Good all-round solver, expressive input language

Excellent performance

Many other features: MaxSMT, fixed-point constraints, proofs

Users can define custom theory solvers

However, closed source (but free for academic use)

Your mileage may vary.

Tjark Weber Satisfiability Modulo Theories

Page 20: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Algorithms

So far, we have considered SMT solvers as a black box.

SMT formulasat (model)unsat (proof)

This view is sufficient for many applications!

Tjark Weber Satisfiability Modulo Theories

Page 21: Satisfiability Modulo Theoriesuser.it.uu.se/.../satisfiability-modulo-theories-erlang.pdf · 2012. 1. 31. · Applications SMT Solver Use Algorithms Conclusion Satis ability Modulo

IntroductionApplications

SMT Solver UseAlgorithmsConclusion

Conclusion

SMT solvers are expressive and easy to use. They scale orders ofmagnitude beyond custom ad hoc solvers.

Use them!

Do not write your own constraint solver.

Tjark Weber Satisfiability Modulo Theories