Download presentation
Presentation is loading. Please wait.
Published byGeorgiana Stevenson Modified over 9 years ago
1
Proving Non-Termination Gupta, Henzinger, Majumdar, Rybalchenko, Ru-Gang Xu presentation by erkan
2
Introduction and Motivation The focus of safety verification is on finding counterexamples and proofs. For liveness verification, the focus is on finding a proof for termination. This paper introduces a new approach for finding counterexamples to non- terminating executions of programs. The purpose is to eliminate false positives by adapting dynamic techniques.
3
Definitions and Motivating Example The algorithm checks if there are any feasible lassos in the program. A lasso is a finite program called stem followed by a loop. The algorithm has two steps: Finds candidate lassos, check for feasibility stem loop
4
Motivating Example
5
The idea behind the algorithm on this example: - a feasible program execution that reaches the head of the loop (the conditional lo < hi on line 3) with some state s - executes the body of the loop (lines 4-11) and goes back to the same state s - In this case, we can unwind the execution of the loop arbitrarily many times, starting at s, executing the loop and returning to s
6
Motivating Example Symbolic execution is used to check non- terminating behaviour Solved by a constraint solver and it will give constraint for the initial state X0X0 X stem X’ loop = ()
7
Case for Unbounded Ranges The previous approach is not sufficient Recurrent sets are used, if R is a recurrent set (1) R satisfies the loop predicate p, (2) some reachable state s satisfies R, and (3) for any state s satisfying R, the successor of s after executing the loop body is again in R.
8
The Algorithm
9
Proving Feasibility of Lassos A relation (execution in this case) is well-founded if it is terminating the lasso induces an infinite execution if the relation is not well-founded. How to check this? Recurrent sets
10
Finding Recurrent Sets 1.Bitwise Analysis if this constraint is satisfiable and can be implemented using Boolean satisfiability solving, it can be resolved by a bit-precise decision procedure
11
Finding Recurrent Sets 2.Linear Arithmetic Analysis The linear arithmetic analysis assumes that the program transitions are representable using conjunctions of linear inequalities over the program variables. The algorithm follows a constraint-based approach.
12
Finding Recurrent Sets The algorithm requires that a template for recurrent sets is provided. The proposed solution: - start with a template that is a singleton conjunction - incrementally add more conjuncts if the constraint solving fails
13
Finding Recurrent Sets Assume we have the template They define a recurrent set if the following condition holds Solving these constraints, we have a recurrent set
14
Thanks!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.