Title: Model Checking of Concurrent Software: Current Projects
1Model Checking ofConcurrent SoftwareCurrent
Projects
- Thomas Reps
- University of Wisconsin
2Projects and Personnel
- University of Wisconsin
- Anne Mulhern
- Alexey Loginov
- Tel-Aviv University
- Prof. Mooly Sagiv
- Eran Yahav
- Noam Rinetzky
- Greta Yorsh
- University of Saarbrücken
- Prof. Reinhard Wilhelm
3Verifying Behavioral SubtypingAnne Mulhern
- Inheritance of code vs. inheritance of behavior
- Liskov Substitution Principle
- For every object x of type t there is an
object x of type t, such that for all programs P
defined in terms of t, the behavior of P is
unchanged when x is substituted for x.
Liskov 1988 - Not enforced by compilers
- Goal Build a tool that provides some amount of
checking
4Why?
class FooNode FooNode next . . . ?many
data members? . . . class Foo FooNode
first FooNode last AppendElmt(Datum) .
. . ?many members? . . .
class ListNode ListNode next class List
ListNode first ListNode last
AddToEnd()
? ?
5Abstraction Refinementfor TVLA/TVMCAlexey
Loginov
- Identify additional abstraction predicates
- Nullary? Unary?
- Both can be used to refine an abstraction
- Need to be able to automatically create update
formulas - Finite differencing of formulas Reps, Sagiv
- Semantic minimization of formulas ?
6Semantic Minimization
- ???(A) Value of formula ? in assignment A
- In 3-valued logic, ???(A) may equal ½
- ?p p?(p ? 0) 1
- ?p p?(p ? ½) ½
- ?p p?(p ? 1) 1
7Two- vs. Three-Valued Logic
0 ? 0,1
1 ? 0,1
8Two- vs. Three-Valued Logic
9Two- vs. Three-Valued Logic
Three-valued logic
10Two- vs. Three-Valued Logic
11Two- vs. Three-Valued Logic
0 ? ½
1 ? ½
12Three-Valued Logic
- 1 True
- 0 False
- 1/2 Unknown
- A join semi-lattice 0 ? 1 1/2
13Boolean Connectives Kleene
14Semantic Minimization
- ???(A) Value of formula ? in assignment A
- In 3-valued logic, ???(A) may equal ½
- ?p p?(p ? 0) 1
- ?p p?(p ? ½) ½
- ?p p?(p ? 1) 1
15Semantic Minimization
- ???(A) Value of formula ? in assignment A
- In 3-valued logic, ???(A) may equal ½
- ?p p?(p ? 0) 1
- ?p p?(p ? ½) ½
- ?p p?(p ? 1) 1
- However,
- ?1?(p ? 0) 1
- ?1?(p ? ½) 1
- ?1?(p ? 1) 1
16Semantic Minimization
- ?1?(p ? 0) 1 ?p p?(p ? 0)
?1?(p ? ½) 1 ? ½ ?p p?(p ? ½) ?1?(p
? 1) 1 ?p p?(p ? 1)
2-valued logic 1 is equivalent to p p
3-valued logic 1 is better than p p
For a given ?, is there a best formula?
Yes!
17Semantic Minimization
Input Propositional formula ? Output
Propositional formula ? such that For all
3-valued assignments A, ???(A) ?
???(a) a?A,
a definite By the
monotonicity of ???(), ???(A) ????(a) ?
???(A) a?A,
a definite
18Example
Original formula (?) xy xz yz
(Note ? is an irredundant sum of
products) Minimal formula (?) yz yz
xz xy xz xy ? ?(xyz xyz) For which
As do we have ???(A) ? ???(A)?
19TVMC A 3-Valued Model CheckerEran Yahav
- Programming-language features
- concurrency
- unbounded s of threads
- pointers/aliasing
- unbounded s of heap-allocated cells
- Properties to be checked
- FOLTL (LTL quantification)
- Safety properties
- Liveness properties (at least some forms . . .)
20Java Threads Are Heap-Allocated Objects? Thread
Analysis ? Shape Analysis
21Java Threads Are Heap-Allocated Objects? Thread
Analysis ? Shape Analysis
An abstract memory configuration
heldBy
thread inCritical
lock1 isAcquired
thread atStart
csLock
csLock
22Java Threads Are Heap-Allocated Objects? Thread
Analysis ? Shape Analysis
Here, model checking means Explore the space of
possible transitions among abstract memory
configurations
23Analysis of ADTs Noam Rinetzky
- Analysis of ADTs (classes) and their clients
- Objects summarized by finite-state machines
obtained via shape-analysis - Example
- Class Queue
- Four states of a Queue object
- Not allocated
- Empty
- Non-empty
- Error
24Analysis of Trees Greta Yorsh
- Shape analysis of tree-manipulation programs
- Binary-search-tree operations
- Deutsch-Schorr-Waite tree traversal without a
stack - Challenges
- Garbage-collection marking algorithm that uses
Deutsch-Schorr-Waite graph traversal (DSW tree
traversal of depth-first-search tree) - Barnes-Hut uses an oct-tree with chained leaves
- Improved materialization algorithm for TVLA