110 likes | 264 Views
Leaping Loops in the Presence of Abstraction. Thomas Ball Orna Kupferman Mooly Sagiv Presentation by Erkan Keremoglu. Motivation. Abstraction is widely used in software verification Techniques using abstraction lose precision in the presence of loops
E N D
Leaping Loops in the Presence of Abstraction • Thomas Ball • Orna Kupferman • Mooly SagivPresentation by Erkan Keremoglu
Motivation • Abstraction is widely used in software verification • Techniques using abstraction lose precision in the presence of loops • Refinement methods will generate a predicate for each iteration • This approach analyzes termination of loops without refinemets
The Idea • Replace may transitions by must transitions • This is done by checking conditions that guarentee that the transitions of the concrete system builds an acyclic connected graph • Finiteness of the concrete states guarenteed the finiteness of the graph
Transitions • mayand must transitions • may transitions are not transitive --> may (a, a'), may (a',a'') but still for all c in a and c'' in a'' we may not have a transition from c to c''
Leaping Loops • Two theorems are checked to decide termination of loops • This theorem rules out unreachable cycles and nondeterminism inside state a
Example for Theorem 1 • We can conclude that there is a must path from x=0 to 3n <= x
Theorem 2 • This is the second theorem, this time for forward traversal • Any of the two theorems can be used for detection of termination
How to Implement? • The idea is to check if there are must relations between given two abstract states • If the system behaves deterministically this is easy to check in the absence of loops • The method enters the picture in cases 1 < i < n such that ai is associated with a loop • Entry and exit points are detected and either theorem 1 or 2 is checked for satisfiability
Calculation of Ports Using Theorem Prover • Entry and exit ports are determined by using WP and SP relations