Proof-Producing Synthesis of CakeML with I/O and Local State from Monadic HOL Functions

Published: 01 Jan 2018, Last Modified: 03 Apr 2025IJCAR 2018EveryoneRevisionsBibTeXCC BY-SA 4.0
Abstract: We introduce an automatic method for producing stateful ML programs together with proofs of correctness from monadic functions in HOL. Our mechanism supports references, exceptions, and I/O operations, and can generate functions manipulating local state, which can then be encapsulated for use in a pure context. We apply this approach to several non-trivial examples, including the type inferencer and register allocator of the otherwise pure CakeML compiler, which now benefits from better runtime performance. This development has been carried out in the HOL4 theorem prover.
Loading

OpenReview is a long-term project to advance science through improved peer review with legal nonprofit status. We gratefully acknowledge the support of the OpenReview Sponsors. © 2025 OpenReview