2-Valued and 3-Valued AbstractionRefinement Frameworks for Model Checking Orna Grumberg Technion Haifa, Israel Tutorials at ATVA, 2009
Download
Report
Transcript 2-Valued and 3-Valued AbstractionRefinement Frameworks for Model Checking Orna Grumberg Technion Haifa, Israel Tutorials at ATVA, 2009
2-Valued and 3-Valued AbstractionRefinement Frameworks for Model Checking
Orna Grumberg
Technion
Haifa, Israel
Tutorials at ATVA, 2009
1
Outline
• 2-valued Abstraction
– CounterExample-Guided AbstractionRefinement (CEGAR)
• 3-Valued Abstraction
– Three-Valued abstraction-Refinement (TVAR)
2
Why (formal) verification?
• safety-critical applications: Bugs are unacceptable!
– Air-traffic controllers
– Medical equipment
– Cars
• Bugs found in later stages of design are expensive, e.g.
Intel’s Pentium bug in floating-point division
• Hardware and software systems grow in size and complexity:
Subtle errors are hard to find by testing
• Pressure to reduce time-to-market
Automated tools for formal verification are needed
3
Model Checking
An efficient procedure that receives:
A finite-state model describing a system
A temporal logic formula describing a property
It returns
yes, if the system has the property
no + Counterexample, otherwise
[EC81,QS82]
4
Model Checking
Emerging as an industrial standard tool for
verification of hardware designs: Intel,
IBM, Cadence, …
Recently applied successfully also for
software verification: SLAM (Microsoft),
Java PathFinder and SPIN (NASA), BLAST
(EPFL), CBMC (Oxford),…
5
Model of a system
Kripke structure / transition system
a,b
a
a
b,c
b
a,c
a,b
c
6
Temporal Logics
• Temporal Logics
– Express properties of event orderings in time
• Linear Time
–
–
–
Every moment has a unique successor
Infinite sequences (words)
Linear Time Temporal Logic (LTL)
• Branching Time
–
–
–
Every moment has several successors
Infinite tree
Computation Tree Logic (CTL)
7
Propositional temporal logic
In Negation Normal Form
AP – a set of atomic propositions
Temporal operators:
Gp
Fp
Xp
pUq
Path quantifiers: A for all path
E there exists a path
8
Branching-time Temporal Logics
CTL*, -calculus - powerful branching-time
logics, containing both CTL and LTL
ACTL / ACTL* / A-calculus
The universal fragments of the logics, with
only universal path quantifiers
9
Main limitation of Model Checking
The state explosion problem:
Model checking is efficient in time but
suffers from high space requirements:
The number of states in the system model grows
exponentially with
the number of variables
the number of components in the system
10
Solutions to the state explosion problem
Small models replace the full, concrete model:
• Abstraction
• Compositional verification
• Partial order reduction
• Symmetry
11
Abstraction-Refinement
• Abstraction: removes or simplifies details
that are irrelevant to the property under
consideration, thus reducing the number of
states
• Refinement might be needed
12
• Manual abstraction requires
– great creativity and
– close familiarity with the checked system
• Goal:
– Automatically construct an abstract model
– Automatically refine it, if necessary
13
2-valued CounterExample-Guided
Abstraction Refinement (CEGAR)
For ACTL*
[CGJLV00]
14
Abstraction preserving ACTL/ACTL*
Existential Abstraction:
The abstract model is an over-approximation of the
concrete model:
– The abstract model has more behaviors
– But no concrete behavior is lost
• Every ACTL/ACTL* property true in the abstract
model is also true in the concrete model
15
Existential Abstraction
Given an abstraction function h : S SA, the
concrete states are grouped and mapped into
abstract states :
MA
MC MA
h
h
h
MC
16
Existential Abstraction (cont.)
Given an abstraction function h : S SA, the
concrete states are grouped and mapped into
abstract states :
p
MA
h
MC
p
p
p
p
h
AP = {p}
p
h
p p p
p
p
17
Widely used Abstractions (SA, h)
For Hardware:
Localization reduction: each variable either keeps
its concrete behavior or is fully abstracted (has
free behavior) [Kurshan94]
For Software:
Predicate abstraction: concrete states are
grouped together according to the set of
predicates they satisfy [GS97,SS99]
19
Logic preservation Theorem
Theorem MC MA, therefore for every
ACTL* formula ,
MA |= MC |=
However, the reverse may not be valid.
20
Traffic Light Example
Property:
=AG AF ¬ (state=red)
Abstraction function h
maps green, yellow to
go.
red
green
red
MC |=
MA |=
go
yellow
MC
MA
21
Traffic Light Example (Cont)
If the abstract model invalidates a specification,
the actual model may still satisfy the specification.
red
red
Property:
=AG AF (state=red)
go
MC |= but MA |=
MA
Spurious Counterexample:
green
yellow
MC
red,go,go, ...
22
The CEGAR Methodology
M and
generate initial
abstraction
MA
MA |=
model check
MA |=
refinement
TA
is spurious
generate
counterexample TA
TA
check spurious
counterexample
stop
TA is not spurious
23
Generating the Initial Abstraction
If we use predicate abstraction then
predicates are extracted from the
program’s control flow and the checked
property
If we use localization reduction then the
unabstracted variables are those appearing
in the predicates above
24
Counterexamples
• For AGp it is a finite path to a state
satisfying p
• For AFp it is an infinite path represented
by a lasso (finite path+loop), where all
states satisfy p
25
Path Counterexample
Assume that we have four abstract states
{1,2,3} {4,5,6}
{7,8,9} {10,11,12}
Abstract counterexample Th= , , ,
Th is not spurious, therefore, M |=
26
Remark:
• and {10, 11, 12} are labeled the same
– If satisfies p then 10, 11, 12 also
satisfy p
Therefore, (1, 4, 9, 12) is a concrete
path counterexample
27
Spurious Path Counterexample
failure state
Th is spurious
The concrete states mapped
to the failure state are
partitioned into 3 sets
states
dead-end
reachable
yes
out edges
no
bad
no
yes
irrelevant
no
no
28
Refining The Abstraction
Goal : refine h so that the dead-end states and
bad states do not belong to the same abstract
state.
For this example, two possible solutions.
29
Automatic Refinement
If the counterexample is spurious
• Find a splitting criterion that separates
the bad states from the dead-end states
in the failure state
• Apply the splitting criterion to splitting
either only the failure state or all states
– Faster convergence of the CEGAR loop
– Faster growing abstract models
30
Checking for Spurious Path Counterexample
• T = (a1,…an) - a path abstract
counterexample
h-1(a) = { s | h(s) = a }
31
Checking for Spurious Path Counterexample
(cont.)
The set of concrete counterexamples
corresponding to T = (a1,…an) :
h-1(T) = { (s1,…sn) | i h(si)=ai I(s1)
iR(si,si+1) }
Is h-1(T) empty?
32
Checking for Spurious Path Counterexample
dead-end
Th is spurious
33
Refining the abstraction
• Refinement separates dead-end states
from bad states, thus, eliminates the
spurious transition from ai-1 to ai
34
Three-Valued Abstraction Refinement
(TVAR)
for Full CTL*
[SG03,GLLS05]
Thanks to Sharon Shoham for the slides on TVAR
38
Goal:
Logic preservation for CTL*
Theorem
If MA is an abstraction of MC then for every CTL*
formula ,
MA |= MC |=
MA | MC |
• But sometimes [MA |= ] = don’t know
39
Abstract Models for CTL*
• Two transition relations
[LT88]
• Kripke Modal Transition System (KMTS)
• M = (S, S0, Rmust, Rmay, L)
– Rmust: an under-approximation
– Rmay: an over-approximation
– Rmust ⊆ Rmay
40
Abstract Models for CTL* (cont.)
Labeling function :
• L: S→ 2Literals
• Literals = AP ⋃ {p | pAP }
• At most one of p and p is in L(s).
– Concrete: exactly one of p and p is in L(s).
– KMTS: possibly none of them is in L(s).
41
Abstract Models for CTL* (cont.)
Labeling of abstract states
¬p
MA
p
MC
¬p
¬p
¬p
p
¬p
p
p
p
43
Abstract Models for CTL* (cont.)
must:
may: under
over
approximation
()
()
must and may transitions:
MA
MC
44
3-Valued Semantics
• Universal properties (A) :
- Truth is examined along all may-successors
- Falsity is shown by a single must-successor
• Existential properties (E) :
- Truth is shown by a single must-successor
- Falsity is examined along all may-successors
45
3-Valued Framework
tt, ff are
definite
• Additional truth value: (indefinite)
• Abstraction preserves both truth and
falsity
• (abstract) sa represents (concrete) sc:
– is true in sa⇒ is true in sc
– is false in sa ⇒ is false in sc
– is in sa ⇒ the value of in sc is unknown
[BG99]
46
The TVAR Methodology
M and
generate initial
abstraction
MA
refinement
model check
[MA |=3 ] = tt,ff
[MA |= 3 ] =
find and analyze
failure node
stop
47
3-Valued Model Checking:
Example
M:
s p, q
p, q t
= AXp EXq
48
M:
MC graph
s p, q
= AXp EXq
(s, AXpEXq)
(s, AXp)
(s, p)
(t, p)
p, q t
(s, EXq)
(s, q)
(t, q)
49
tt
ff
Coloring the MC graph
⊥
7
5
s p, q
p, q t
= AXp EXq
(s, AXpEXq)
(s, AXp)
M:
6
(s, EXq)
(s, p)
(t, p)
(s, q)
(t, q)
1
2
3
4
reason for unknown:
may-son
- not enough to verify
- prevents refutation
50
Abstraction-Refinement
• Traditional abstraction-refinement is
designed for 2-valued abstractions:
– True holds in the concrete model.
– False may be a false alarm.
⇒ Refinement is needed when the result is
false and is based on a counterexample
analysis.
51
3-Valued Model Checking Results
• tt and ff are definite: hold in the
concrete model as well.
• ⊥ is indefinite
⇒ Refinement is needed.
52
Refinement
• As for the case of 2-values, done by
splitting abstract states
MA
MC
53
Refinement
• Identify a failure state: a state sa for
which some subformula is in sa
– Done during model checking
• Split sa so that
– an indefinite atomic proposition becomes
definite (true or false), or
– A may transition becomes a must transition
or disappears
54
Refinement (cont.)
• Uses the colored MC graph
• Find a failure node nf:
– a node colored whereas none of its sons was
colored at the time it got colored.
– the point where certainty was lost
• purpose: change the
color of nf .
Refinement is reduced to separating subsets
of the concrete states represented by nf.
55
Example
tt
ff
M:
s p, q
⊥
7
p, q t
= AXp EXq
(s, AXpEXq)
failure
5
(s, AXp)
6
(s, EXq)
(s, p)
(t, p)
(s, q)
(t, q)
1
2
3
4
reason for failure:
may-son
- not enough to verify
- prevents refutation
56
Example (cont.)
(s, EXq)
(t, q)
concrete states that have a son corresponding to the
may-edge are separated from the rest
M
MC
s
t
57
Example (cont.)
7
5
M:
M’:
s1 p,p,qq
=p,AXp
q EXq
s2
(s1, AXpEXq)
(s1, AXp)
p,p, qq tt
= AXp EXq
6
(s1, EXq)
(s2, p)
(t, p)
(s2, q)
(t, q)
1
2
3
4
58
tt
ff
Example (cont.)
M’:
s1 p, q
⊥
7
5
s2 p, q
(s1, AXpEXq)
(s1, AXp)
p, q t
= AXp EXq
6
(s1, EXq)
(s2, p)
(t, p)
(s2, q)
(t, q)
1
2
3
4
59
Completeness
• Our methodology refines the abstraction
until a definite result is received.
• For finite concrete models iterating the
abstraction-refinement process is
guaranteed to terminate, given any CTL
formula.
60
Incremental Abstraction-Refinement
No reason to split states for which MC
results are definite during refinement.
• After each iteration remember the nodes
colored by definite colors.
• Prune the refined MC graph in sub-nodes of
remembered nodes.
[ (sa, ) is a sub-node of (sa’, ’) if =’ and (sa)⊆’(sa’) ]
• Color such nodes by their previous colors.
61
Example
62
Example (cont.)
Refined MC-graph
63
Example (cont.)
64
Example (cont.)
Refined MC-graph
…
65
Conclusion
We presented two frameworks, CEGAR and
TVAR, for abstraction-refinement in model
checking:
• Properties preserved:
– CEGAR: ACTL*
– TVAR: Full CTL*
• Refinement eliminates
– CEGAR: Counterexamples
– TVAR: indefinite results ()
67
Conclusion (cont.)
The TVAR framework requires
• Different abstract models (Rmust, Rmay)
– Rmust is harder to compute
• Adapted model checking
• Gives benefits in preciseness and
scalability
68
Thank You
69