Stateless HOL

Freek Wiedijk
(Radboud University Nijmegen)

We present a version of the HOL Light system that supports undoing definitions in such a way that this does not compromise the soundness of the logic. In our system the code that keeps track of the constants that have been defined thus far has been moved out of the kernel. This means that the kernel now is purely functional.

The changes to the system are small. All existing HOL Light developments can be run by the stateless system with only minor changes.

The basic principle behind the system is not to name constants by strings, but by _pairs_ consisting of a string and a _definition._ This means that the data structures for the terms are all merged into one big graph. OCaml - the implementation language of the system - can use pointer equality to establish equality of data structures fast. This allows the system to run at acceptable speeds. Our system runs at about 85% of the speed of the stateful version of HOL Light.

In Tom Hirschowitz: Proceedings Types for Proofs and Programs, Revised Selected Papers (TYPES 2009), Aussois, France, 12-15th May 2009, Electronic Proceedings in Theoretical Computer Science 53, pp. 47–61.
Published: 16th March 2011.

ArXived at: https://dx.doi.org/10.4204/EPTCS.53.4 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org