Software Model Checking via Large

Download Report

Transcript Software Model Checking via Large

By Dirk Beyer, Alessandro Cimatti, Alberto Griggio, Erkan Keremoglu and
Roberto Sebastiani
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)

A successful approach to model checking is
through construction and analysis of an
abstract reachability tree (ART) + predicate
abstraction
Unwind
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)

ART nodes consist of
 Control-Flow Location
 Call stack
 Data State formulas

In Single-Block Encoding (SBE) each program op is
represented by a single edge in ART
 Huge number of paths and nodes

But in Large-Block Encoding (LBE) entire part of the
program is represented by an edge
 Smaller number of paths are enumerated in ART
 Exponential reduction in number of states (maybe)
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)
SBE
LBE
(more general representation of abstract states)
Conjunction of Predicates
Arbitrary Boolean Combination of Predicates
More Accurate Abstract Successor Computation

We use Satisfiability Modulo Theories (SMT)
SBE + Cartesian Abs
(BLAST, SLAM)
LBE + Boolean Abstraction
(CPACHECKER)
Large number of successor computations
Reduced number of successor computations
Efficient computation of Cartesian abstraction
by SMT
Boolean abstraction is expensive
tradeoff
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)
SBE
LBE
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)

We work on a simple imperative PL
 Assume Op
 Assignment
 Just integers



Program is presented by a Control Flow Automaton (CFA)
CFA: A(L, G)
Program: P = (A, l0, lE)
A concrete data state of the program is a variable assignment like c
that assigns to each variable an integer value
 A formula φ represents the set S of states c that:

 S = {c | c |= φ}

SPOP (φ): represents the set of data states that are reachable from
states in region φ after applying OP
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)

We define precision (like π) as a finite subset
from the universal predicate set of the program

Cartesian Predicate Abstraction:
 A CartPA φ cπ of a formula φ is the strongest
conjunction of predicates from π entailed by φ
 This is used as an Abstract State

Boolean Predicate Abstraction:
 A BoolPA φ Bπ of a formula is the strongest
combination of predicates from π entailed by φ

Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)
Cartesian Abstraction
Boolean Abstraction
Simple
Complex
Efficient
Expensive
Imprecise
Precise
tradeoff
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)





The Precision function assigns to each program
location, a precision formula
The nodes of ART are like n=(l, φ)
The tree is complete when there are no uncovered
nodes, or all possible abstract successor states are
present in the ART as the children of the node
If the final ART does not have any error nodes, then
we are done
Else the error path is checked for feasibility
 If feasible: the error is reported
 If not feasible: refinement!

For practical reasons, SBEs use Cartesian abstraction
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)


Each large control-flow subgraph that is free
of loops is replaced with a single control-flow
edge with a large formula
This is done with applying the following rules:
 Rule 0 (Error Sink): make all error points, a sink
 Rule 1 (Sequence): remove intermediate nodes
and go directly to successor nodes
 Rule 2 (Choice): If there are two edges btw two
nodes we should replace that with a single edge
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)
Rule 1
Presentation By:
Pashootan Vaezipoor
Rule 2
Simon Fraser University (Spring 09)
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)

LBE:
 Possibly exponentially smaller ARTs
 Less abstract refinement steps
 Each step is more expensive than SBE
 More expressive representation of abstract states
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)

In the paper, BLAST is used for the model
checking phase
 All four configs are tested:
▪
▪
▪
▪
bfs
dfs
predH 0
predH 7
 The config –dfs –predH 7 is the winner for programs
without defects
 For unsafe programs –bfs –predH 7 is winner
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)


In the experiments, all four combinations of
LBE vs. SBE and Cartesian vs. Boolean
abstraction are tested
Results:
 SBE doesn’t benefit from Boolean Abstraction
 Combination of LBE with Cartesian Abstraction
failed to solve any experiments due to the loss of
precision
 SBE + CartAbs is OK
 LBE + BoolAbs is OK
Presentation By:
Pashootan Vaezipoor
Simon Fraser University (Spring 09)