Clocked Definitions in HOL
Ramana Kumar, Magnus O. Myreen

TL;DR
This paper discusses clocked definitions in HOL, proposing a technique that simplifies termination proofs while minimizing clock usage, especially in defining semantic interpreters for programming languages.
Contribution
It introduces a novel method to incorporate clocks in HOL definitions that keeps termination proofs simple and less intrusive.
Findings
Different clocking methods exist with varying intrusiveness.
The proposed technique reduces complexity in termination proofs.
Applications include defining semantic interpreters for programming languages.
Abstract
Many potentially non-terminating functions cannot be directly defined in a logic of total functions, such as HOL. A well-known solution to this is to define non-terminating functions using a clock that forces termination at a certain depth of evaluation. Such clocked definitions are often frowned upon and avoided, since the clock is perceived as extra clutter. In this short paper, we explain that there are different ways to add a clock, some less intrusive than others. Our contribution is a technique by which termination proofs are kept simple even when minimising the use of the clock mechanism. Our examples are definitions of semantic interpreters for programming languages, so called functional big-step semantics.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
