This thesis provides mathematical techniques for the static analysis of numerical operations in programs. Specifically, we design efficient algorithms for the automatic discovery of invariant linear and non-linear interrelationships among the variables of the input program.
We shall consider imperative programs over numerical quantities. These programs arise naturally in many domains: scientific programs, process controllers, network protocols, timed and hybrid process models, models of manufacturing systems, and models of biochemical reaction mechanisms are all examples of such programs.
The thesis is divided into two parts. In the first part, we provide efficient algorithms for the discovery of linear relations for linear programs, i.e. programs where the guards and assignments are linear. The second part of the thesis provides techniques for discovering invariant nonlinear relations for nonlinear programs.
Linear relation analysis is performed by forward propagation, wherein a set of states is approximated by a convex polyhedron. These techniques have been widely used in the analysis of timed and linear hybrid systems. Analysis techniques based on polyhedra do not scale to large systems owing to the exponential space polyhedral operations involved. Common solutions consider weakly relational domains, wherein the analysis is carried out over polyhedra with a pre-defined fixed shape such as intervals, octagons, and octahedra. In this thesis, we define an alternative simple polynomial time analysis on arbitrary user-defined polyhedra by means of repeated linear optimization queries that can be solved efficiently.
Traditional linear relation analysis algorithms use heuristic guesses in the form of widening to guarantee termination. We define an alternative constraint-based approach that casts the search for a candidate invariant relationship into a non-linear constraint solving problem. We demonstrate efficient techniques for solving these constraints both exactly and approximately.
The second part of the thesis addresses nonlinear relations for nonlinear programs. We provide a technique that discovers nonlinear equality invariants using computational tools such as Groebner bases. We demonstrate applications to the verification of nonlinear control systems, and automatically prove the correctness of some simple numerical algorithms using our technique.
Postscript, PDF. © 2005, Sriram Sankaranarayanan.