Nils Klarlund
FOCS 1991
Floyd's method based on well-orderings is the standard approach to proving termination of programs. Much attention has been devoted to generalizing this method to termination of programs that are subjected to fairness constraints. Earlier methods for fair termination tend to be somewhat indirect, relying on program transformations, which reduce the original problem to several termination problems. In this paper we introduce the new concept of stack assertions, which directly - without transformations - quantify progress towards fair termination. Moreover, we show that by one simple program transformation of adding a history variable, usual assertional logic, without fixed-point operators, is sufficiently expressive to form a sound and relatively complete method when used with stack assertions. This result is obtained as part of a substantial simplification of earlier completeness proofs.
Nils Klarlund
FOCS 1991
E. Upfal
PODC 1992
Nils Klarlund, Dexter Kozen
LICS 1991
Amir Herzberg
PODC 1992