390 likes | 563 Views
Real-Time Systems, COSC-4301-01, Lecture 15. Stefan Andrei. Reminder of the last lecture. Decomposition-based Verification of Linear Real-Time Systems Specifications. Overview of This Lecture. Termination analysis by function inversion. Introduction.
E N D
Real-Time Systems, COSC-4301-01, Lecture 15 Stefan Andrei COSC-4301-01, Lecture 15
Reminder of the last lecture • Decomposition-based Verification of Linear Real-Time Systems Specifications COSC-4301-01, Lecture 15
Overview of This Lecture • Termination analysis by function inversion COSC-4301-01, Lecture 15
Introduction • Program’s correctness is one of the most important problem in computer science: • Partial correctness: a program P that terminates for any given input provides the expected output; • Total correctness: Partial correctness + Termination • A program P terminates if it executes a finite number of steps for any input until provides the output. • Total correctness is more important than partial correctness (M. Huth and M. Ryan: Logic in Computer Science. Modelling and Reasoning about Systems. Cambridge Press, 2004) COSC-4301-01, Lecture 15
Introduction (cont) • The halting problem (a.k.a., the termination problem): • Given a program and a finite input, decide whether the program finishes running or will run forever? • In 1936, Alan Turing showed that the halting problem is undecidable. • Hence, there is no general algorithm to prove program termination or to determine the runtime of a program. • The halting problem is so famous because it was one if the first problems proved undecidable. COSC-4301-01, Lecture 15
Related Work • It has been clear since the early days of computing that a program correctness argument can be clearly partitioned into partial (conditional) correctness, and termination: • C.A.R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, 12:576–580, 1969. COSC-4301-01, Lecture 15
Related Work (cont.) • Termination analysis has been developed for different programming frameworks over the years: • N. Dershowitz, N. Lindenstrauss, Y. Sagiv, and A. Serebrenik. A General Framework for Automatic Termination Analysis of Logic Programs. Applicable Algebra in Engineering, Communication and Computing, 12(1/2):117–156, 2001. • M. Colon and H. Sipma. Practical Methods for Proving Program Termination. In 14th International Conference on Computer Aided Verification (CAV), volume 2404 of Lecture Notes in Computer Science, pages 442–454. Springer, 2002. • Byron Cook, Andreas Podelski, and AndreyRybalchenko. Termination proofs for systems code. SIGPLAN Not., 41(6):415–426, 2006. COSC-4301-01, Lecture 15
Related Work (cont.) • There are many applications in real-time systems for which the termination problem is motivated. • The termination problem was also considered in other papers: • C.S. Lee, N.D. Jones, and A.M. Ben-Amram. The Size-Change Principle for Program Termination. In Conference Record of the 28th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, volume 28, pages 81–92. ACM press, January 2001. • H. Anderson, S.C. Khoo, S. Andrei, and B. Luca. Calculating Polynomial Runtime Properties. In Kwangkeun Yi, editor, APLAS 05: Asian Symposium on Programming Languages and Systems, pages 230–246, Springer, 2005. COSC-4301-01, Lecture 15
Conversion from while to recursion • To the best of our knowledge, all these related works considered termination methods where the parameters values are decreasing. • Our technique removes this restriction (Program P1 below): x = <some real value>; a = <some real value>; n = <some positive integer value>; while (n != 0 && n != 1) { if (n % 2 == 0) { x = x * x; n = n / 2; } else { n++; a = x * a; } } return a; COSC-4301-01, Lecture 15
F1 corresponds to P1 • We limit the definition of the termination analysis to function calls only. COSC-4301-01, Lecture 15
The Runtime • The runtime (a.k.a., as the running time) of a function execution is the number of function calls until it terminates. • Such calls are the only difficult part of a runtime calculation, as other program constructs (statements, parameters transmission) add constant time delays. COSC-4301-01, Lecture 15
Essential Arguments • The programs subject to analysis may contain arguments that are not essential for our method. • Formally, given an initial program P, we denote by [P] the projection of P by considering only the parameters that occur in the test conditions of P: • An initial program P terminates if and only if [P]terminates, too. COSC-4301-01, Lecture 15
Essential Arguments (example) • F1 is a function similar to that used in the calculation of xn. • The projection of F1 (denoted as PF1) is given by Figure 1, where x and a are not parameters involved in the program’s termination. • Note that PF1 is a single-parameter function, as it only has n as a parameter. COSC-4301-01, Lecture 15
The Numerical Normal Form • Given a program P expressed as a single recursive function, we say that f() is the numerical normal form of [P] if and only if: • Arguments of f() are the same as arguments of [P]; • Branch conditions of f() correspond to test conditions of [P]; • The body of each branch of f() corresponds to the argument of the same branch of [P]. COSC-4301-01, Lecture 15
An Equivalent Reformulation • The termination problem for [P] is equivalent to showing that for any n N, there exists a k N such that f(k)(n) = 0, where: • f(1) = f, • f(k+1) = f f(k), • means the function’s composition, • and 0 is a constant corresponding to termination. COSC-4301-01, Lecture 15
Equivalent Reformulation (example) • The numerical normal form of PF1 can be given by f1 : N N. • The recursive calls of PF1 correspond to function’s composition operations of f1(): • PF1(n) has krecursive calls until STOP if and only if f1(k)(n) = 0. COSC-4301-01, Lecture 15
Our Class of Functions • We consider the general numerical normal form for functions having one parameter is F : N N such as: • where: • n’0, ..., n’m-1are constants; • x = n0, ..., x = nm-1are terminating conditions; • 0(x), ..., p-1(x) are called non-terminating conditions; • f0(x), ..., fp-1(x) are invertible functions. COSC-4301-01, Lecture 15
The Execution Trace Tree • Given a function F(), the execution trace tree is denoted ETT(F). • This tree is a pair (V,E), where V is the set of nodes (vertices) and E is the set of arcs (edges). • ETT(F) has an unlabeled root that has a number of direct descendants equal to the number of values from the termination conditions (e.g., values n’0, ..., n’m-1). • Each arc from node y to node x every time F(x) = y has a solution. COSC-4301-01, Lecture 15
ETT(F) for our class _ … n’m-1 n’0 nm-1 n0 … y F(x)=y has a solution. … … x … COSC-4301-01, Lecture 15
Finite Fragments of ETT(F) • ETT(F) may contain infinite paths. • For any y N+, k N+a finite p-ary tree with root y, having k levels, denoted ETTk(y) = (Vk, Ek). • Each node, except the root, v Vkis labeled with a natural number, denoted by label(v). • The node v may have 1, 2, ..., p descendants depending on its label y. • That is, i {0, ..., p – 1} whenever βi(f -1i(y)) holds, then v has a descendant labeled by f -1i(y). COSC-4301-01, Lecture 15
Connection to Termination Problem • If all paths from the root are finite, then the termination problem can be easily solved. • For the inputs that are labels of ETT(F), the termination problem holds. • For the inputs not labels of ETT(F), the program runs infinitely. • We denote labels(V) as being {label(v) | v V}. • One inclusion is obvious: labels(V ) N. • Hence, the termination problem for F is equivalent to: labels(V(ETT(F))) = N+. COSC-4301-01, Lecture 15
An Example with Finite ETT • Function f2 is terminating only for inputs 0, 1, 2, and is non-terminating for the other naturals 3, 4, ... • So, the challenging case for tackling the termination problem and computing the runtime is when ETT has at least one potentially infinite path. COSC-4301-01, Lecture 15
An Effective Non-Trivial Subclass • We consider the cases when fi() are affine functions and i() are conditions containing modulo operators (called modulo-case functions): • where F : N N, andi{0, ..., p-1}, we have ai Q+, bi Q, ai × p N and ai × i + bi N. COSC-4301-01, Lecture 15
ETT(F) for a Modulo-Case Function • Considering a modulo-case function, an arbitrary node v of ETT(F) may have up to p descendants depending on its label y. • That is, i{0, ..., p-1} whenever (y-bi)/aii (mod p), then v has a descendant labeled by (y-bi )/ai. • Example: • ETT(f1) is an infinite binary tree. • f -11 = {(m, 2m) | m 1}{(m, m - 1) | m is even}. COSC-4301-01, Lecture 15
ETT5(f1) • The arc (2, 1) was not generated because 1 belongs to ETT5(f1). COSC-4301-01, Lecture 15
Our Systematic Method • s = max i={0, …, p-1}{ 1/ai, 1} and • (k) = • sk if s > 1 • k if s = 1 • where x represents the integer ceiling of x. • The set {0, 1, 2, ..., (k)} will be used in our method. • The main idea is to generate ETT(f) until the algorithm finds a polynomial as an upper bound for the smallest level (sl) such that the set{0, 1, 2, ..., (k)} can be found as labels for the first sl levels of ETT(f). COSC-4301-01, Lecture 15
Our Systematic Method (cont.) • If such a polynomial is found, then the designer can start doing the formal proof for the induction step. • If this fails, then the algorithm will search a polynomial of a higher degree. • The algorithm will look for polynomials of a predefined maximum degree, say dmax. COSC-4301-01, Lecture 15
Algorithm A - Pseudocode • The Input: A modulo-case function f() and a positive integer dmax • The Output: • ‘Yes’ (if f() is terminating)and a domain constraint as well as an estimation of running time, otherwise • ‘Polynomial up to degree dmaxnot found’ (if the algorithm cannotfind a polynomial for the runtime). COSC-4301-01, Lecture 15
Algorithm A - Pseudocode (cont.) COSC-4301-01, Lecture 15
Algorithm A - Pseudocode (cont.) COSC-4301-01, Lecture 15
Algorithm A’s Correctness • Theorem 4.1 Let f be a modulo-case function, and dmaxa positive integer. Algorithm A will provide: • ‘Yes’ and a domain constraint as well as an estimation of running time, if the algorithm proved that f is terminating; • ‘Polynomial up to degree dmax not found’, if the algorithm cannot find such a polynomial as an upper bound for the runtime. COSC-4301-01, Lecture 15
Algorithm A applied to f1() • From the definition of f1(), we get s = 2, so (k) = 2k. • The sets {0, 1, 2}and{0, 1, 2, 3, 4} are generated by level 1 and 3, respectively. • The polynomial P of degree 1 such that P(1) = 1 and P(2) = 3 is P(x) = 2x – 1. • Algorithm tests whether {0, 1, 2, ..., 23} are labels of ETT(f1) by level P(3) = 5. • According to Figure from slide 23, this assertion holds. COSC-4301-01, Lecture 15
Algorithm A applied to f1() • Checking inductive step: • suppose that {0, 1, 2, ..., 2k} are labels of ETT(f1) by the level P(k) = 2k - 1; • the method checks whether {0, 1, 2, ..., 2k, 2k + 1, ..., 2k+1} are labels of ETT(f1) by level P(k + 1) = 2k + 1. • The proof is based on the fact that f-11={(m, 2m) | m 1}{(m, m - 1) | m is even}. • Our algorithm was able to systematically prove the termination problem. • The running time is 2 × log2(n)-1. COSC-4301-01, Lecture 15
Conclusion • This paper presented a novel and systematic approach for calculating the maximum runtime of functions for a nontrivial class of programs, based on an induction over a tree of execution traces. COSC-4301-01, Lecture 15
Future work • We are working towards a more complete characterization of the class of functions for which the runtime and termination analysis can be done using our approach. • Comparison with state-of-the-art termination tools (e.g., Terminator); • Applying our algorithm to challenging and famous problems, e.g., the Collatz problem (a.k.a., the ‘3x+1’ problem); • Changing the class of polynomials to exponentials (or other functions) as an upper bound for labels of the ETT(F). COSC-4301-01, Lecture 15
Summary • Termination Analysis by Function Inversion COSC-4301-01, Lecture 15
Reading suggestions • [And08] Andrei, S.: Termination Analysis by Program Inversion. SYNASC 2008 COSC-4301-01, Lecture 15
Coming up next • Modechart COSC-4301-01, Lecture 15
Thank you for your attention!Questions? COSC-4301-01, Lecture 15