A verified cyclicity checker: For theories with overloaded constants
Authors
KTH Royal Institute of Technology
Stockholm
Sweden\ UNSW Sydney
Australia
Abstract
Non-terminating (dependencies of) definitions can lead to logical contradictions, for example when defining a boolean constant as its own negation. Some proof assistants thus detect and disallow non-terminating definitions. Termination is generally undecidable when constants may have different definitions at different type instances, which is called (ad-hoc) overloading. The Isabelle/HOL proof assistant supports overloading of constant definitions, but relies on an unclear foundation for this critical termination check. With this paper we aim to close this gap: we present a mechanised proof that, for restricted overloading, non-terminating definitions are of a detectable cyclic shape, and we describe a mechanised algorithm with its correctness proof. In addition we demonstrate this cyclicity checker on parts of the Isabelle/HOL main library. Furthermore, we introduce the first-ever formally verified kernel of a proof assistant for higher-order logic with overloaded definitions. All our results are in the HOL4 theorem prover.
BibTeX Entry
@inproceedings{Gengelbach_Pohjola_22,
address = {Haifa, Israel},
author = {Arve Gengelbach and Johannes {\AA}man Pohjola},
booktitle = {International Conference on Interactive Theorem Proving},
doi = {10.4230/LIPIcs.ITP.2022.15},
editor = {June Andronick and Leonardo de Moura},
month = aug,
pages = {15:1--15:18},
paperurl = {https://trustworthy.systems/publications/papers/Gengelbach_Pohjola_22.pdf},
publisher = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik},
title = {A Verified Cyclicity Checker: For Theories with Overloaded Constants},
volume = {237},
year = {2022}
}
Full text
BibTeX