Interactive termination proofs using termination cores

  • Authors:
  • Panagiotis Manolios;Daron Vroon

  • Affiliations:
  • College of Computer and Information Science, Northeastern University, Boston, MA;College of Computer and Information Science, Northeastern University, Boston, MA

  • Venue:
  • ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

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.