,
Vincent Jackson
,
Christine Rizkallah
Creative Commons Attribution 4.0 International license
We introduce a powerful termination algorithm for structurally recursive functions that improves on the core ideas behind lexicographic termination algorithms for functional programs. The algorithm generates linear-lexicographic combinations of primitive measure functions measuring the recursive structure of terms. We introduce a measure language that enables the simplification and comparison of measures and we prove meta-theoretic properties of our measure language. Moreover, we demonstrate our algorithm, on an untyped first-order functional language and prove its soundness and that it runs in polynomial time. We also provide a Haskell implementation. As part of this work, we also show how to solve the maximisation of negative vector-components as a linear program.
@InProceedings{giles_et_al:LIPIcs.ICALP.2024.139,
author = {Giles, Raphael Douglas and Jackson, Vincent and Rizkallah, Christine},
title = {{T-Rex: Termination of Recursive Functions Using Lexicographic Linear Combinations}},
booktitle = {51st International Colloquium on Automata, Languages, and Programming (ICALP 2024)},
pages = {139:1--139:19},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-322-5},
ISSN = {1868-8969},
year = {2024},
volume = {297},
editor = {Bringmann, Karl and Grohe, Martin and Puppis, Gabriele and Svensson, Ola},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ICALP.2024.139},
URN = {urn:nbn:de:0030-drops-202827},
doi = {10.4230/LIPIcs.ICALP.2024.139},
annote = {Keywords: Termination, Recursive functions}
}
archived version
archived version