| | |
Summary: Approximating the Domains of Functional and
Imperative Programs
J¨urgen Brauburger, J¨urgen Giesl 1
FB Informatik, TU Darmstadt, Alexanderstraße 10, 64283 Darmstadt, Germany
Abstract
This paper deals with automated termination analysis of partial functional pro
grams, that is, of functional programs which do not terminate for some input. We
present a method to determine their domains (resp. nontrivial subsets of their
domains) automatically. More precisely, for each functional program a termination
predicate algorithm is synthesized that only returns true for inputs where the pro
gram is terminating. To ease subsequent reasoning about the generated termination
predicates we also present a procedure for their simplification. Finally, we show
that our method can also be used for automated termination analysis of imperative
programs.
1. Introduction
Termination of algorithms is a central problem in software development and
formal methods for termination analysis are essential for program verification.
While most work on the automation of termination proofs has been done in
the areas of term rewriting systems (for surveys see e.g. [11,27]) and of logic
programs (e.g. [24,25,28]), in this paper we focus on functional programs.
|