Download presentation
Presentation is loading. Please wait.
1
Model Checking of Concurrent Software: Current Projects Thomas Reps University of Wisconsin
2
Projects 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
3
Verifying Behavioral Subtyping Anne 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
4
Why? 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(); }; ??
5
Abstraction Refinement for TVLA/TVMC Alexey 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
6
Semantic 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
7
Two- vs. Three-Valued Logic 01 Two-valued logic {0,1} {0}{1} Three-valued logic {0} {0,1} {1} {0,1}
8
Two- vs. Three-Valued Logic Two-valued logicThree-valued logic
9
Two- vs. Three-Valued Logic Three-valued logic 0 1 Two-valued logic {1} {0,1} {0} 1 ½ 0
10
Two- vs. Three-Valued Logic 01 Two-valued logic {0}{1} Three-valued logic {0,1}
11
Two- vs. Three-Valued Logic 01 Two-valued logic ½ 01 Three-valued logic 0 ½ 1 ½
12
1: True 0: False 1/2: Unknown A join semi-lattice: 0 1 = 1/2 Three-Valued Logic 1/2 Information order
13
Boolean Connectives [Kleene]
14
Semantic 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
15
Semantic 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
16
Semantic 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!
17
Semantic 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
18
Example Original formula ( ) xy ’ + x ’ z ’ + yz (Note: is an irredundant sum of products) Minimal formula ( ) y ’ z ’ + yz + x ’ z ’ + x ’ y + xz + xy ’ (x ’ y ’ z + xyz ’ ) For which A’s do we have (A) (A)? A (A) (A) [x ½, y 0, z 0] 1 ½ [x 0, y 1, z ½] 1 ½ [x 1, y ½, z 1] 1 ½
19
TVMC: A 3-Valued Model Checker Eran 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...)
20
Java Threads Are Heap-Allocated Objects Thread Analysis Shape Analysis A memory configuration: thread3 inCritical lock1 isAcquired thread1 atStart thread2 atStart thread4 atStart csLock heldBy
21
An abstract memory configuration: thread inCritical lock1 isAcquired thread ’ atStart csLock heldBy Java Threads Are Heap-Allocated Objects Thread Analysis Shape Analysis
22
Here, model checking means: Explore the space of possible transitions among abstract memory configurations Java Threads Are Heap-Allocated Objects Thread Analysis Shape Analysis
23
Analysis 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
24
Analysis 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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.