Neil D. Jones ; Nina Bohr - Call-by-value Termination in the Untyped lambda-calculus

lmcs:915 - Logical Methods in Computer Science, March 17, 2008, Volume 4, Issue 1 - https://doi.org/10.2168/LMCS-4(1:3)2008
Call-by-value Termination in the Untyped lambda-calculusArticle

Authors: Neil D. Jones ; Nina Bohr

    A fully-automated algorithm is developed able to show that evaluation of a given untyped lambda-expression will terminate under CBV (call-by-value). The ``size-change principle'' from first-order programs is extended to arbitrary untyped lambda-expressions in two steps. The first step suffices to show CBV termination of a single, stand-alone lambda;-expression. The second suffices to show CBV termination of any member of a regular set of lambda-expressions, defined by a tree grammar. (A simple example is a minimum function, when applied to arbitrary Church numerals.) The algorithm is sound and proven so in this paper. The Halting Problem's undecidability implies that any sound algorithm is necessarily incomplete: some lambda-expressions may in fact terminate under CBV evaluation, but not be recognised as terminating. The intensional power of the termination algorithm is reasonably high. It certifies as terminating many interesting and useful general recursive algorithms including programs with mutual recursion and parameter exchanges, and Colson's ``minimum'' algorithm. Further, our type-free approach allows use of the Y combinator, and so can identify as terminating a substantial subset of PCF.


    Volume: Volume 4, Issue 1
    Published on: March 17, 2008
    Imported on: July 5, 2007
    Keywords: Computer Science - Programming Languages,F.3.2,D.3.1

    Classifications

    Mathematics Subject Classification 20201

    12 Documents citing this article

    Consultation statistics

    This page has been seen 1520 times.
    This article's PDF has been downloaded 420 times.