Proving Termination via Measure Transfer in Equivalence Checking
Program verification can benefit from proofs with varied induction schemas. A natural class of induction schemas, functional induction, consists of those derived from definitions of functions. For such inductive proofs to be sound, it is necessary to establish that the functions terminate, which is a challenging problem on its own. In this paper, we consider termination in the context of equivalence checking of a candidate program against a provably terminating reference program annotated with termination measures. Using equivalence checking, our approach automatically matches function calls in the reference and candidate programs and proves termination via measure transfer. We evaluate this approach on existing and newly written termination benchmarks, as well as on exercises in programming courses. Our evaluation corpus comprises around 10K lines of code. We show empirically that the termination measures of reference programs often successfully prove the termination of equivalent candidate programs, ensuring the soundness of inductive reasoning in a fully automated manner.
École Polytechnique Fédérale de Lausanne
Birkbeck, University of London
École Polytechnique Fédérale de Lausanne
École Polytechnique Fédérale de Lausanne
2024
EPFL
| Relation | Related work | URL/DOI |
Cites | Proving Termination via Measure Transfer in Equivalence Checking (Extended Version) | |