Interactive Termination Proofs using Termination Cores
Panagiotis Manolios and Daron Vroon. ITP: Interactive Theorem Proving, © Springer
Abstract
Recent advances in termination analysis have yielded new
methods and tools that are highly automatic. However, when they fail,
even experts have difficulty understanding why and determining how
to proceed. In this paper, we address the issue of building termination
analysis engines that are both highly automatic and easy to use in an
interactive setting. We consider the problem in the context of ACL2,
which has a first-order, functional programming language. We introduce
the notion of a termination core, a simplification of the program under
consideration which consists of a single loop that the termination engine
cannot handle. We show how to extend the Size Change Termination
(SCT) algorithm so that it generates termination cores when it fails
to prove termination, with no increase to its complexity. We show how
to integrate this into the Calling Context Graph (CCG) termination
analysis, a powerful SCT-based automatic termination analysis that is
part of the ACL2 Sedan. We also present several new, convenient ways
of allowing users to interface with the CCG analysis, in order to guide it
to a termination proof.
PDF (513K) © Springer