## A Reference Version of HOL

### BibTeX

@MISC{Harrison_areference,

author = {John Harrison and Konrad Slind},

title = {A Reference Version of HOL},

year = {}

}

### OpenURL

### Abstract

. The second author has implemented a reference version of the HOL logic (henceforth called gtt). This version, written in Standard ML, is as simple as possible, making as few assumptions as necessary to present the essence of HOL. This simplicity makes the implementation easy to understand, to port, to develop, to change, and to informally reason about. The first author has ported gtt to another dialect of ML, and developed the parsing, prettyprinting, and typechecking support needed to take gtt beyond its initial rudimentary conception. The implementation of gtt has already been of use in developing a variant of the HOL logic. As of this writing, there are at least four or five extant implementations of the HOL logic. These have been intensively developed, in some cases over decades, which leads us to an overwhelming question: why another? In particular, why gtt? There are several answers to this, stemming from different desires and needs in the HOL community. Changing the logic a ...

### Citations

332 | Lambda calculus notation with nameless dummies, a tool for automatic for- mula manipulation, with application to the Church-Rosser Theorem
- Bruijn
- 1972
(Show Context)
Citation Context ...e which holds the current term constants and their types (the term signature). Some notable details about the implementation of term follow. 1. As in hol90, (a slight modification of) de Bruijn terms =-=[dB72]-=- are used, since they give simple implementations of the operations of substitution and type instantiation. (On the other hand, the constructors and destructors for abstractions become a little more c... |

48 |
Projection Factorisations in Partial Evaluation
- Launchbury
- 1989
(Show Context)
Citation Context ...ing to see if sharing types would tip the balance back in favour of the HOL88 method. 4. There are interesting possibilities for partial evaluation, or so the people who do partial evaluation tell us =-=[Lau90]-=-. The simplicity of gtt is such that it should port easily to a language with partial evaluation; however, we caution that the benefits of partial evaluation will need to be measured in a full-scale H... |

26 |
Binary decision diagrams as a HOL derived rule
- Harrison
- 1995
(Show Context)
Citation Context .... 1. The assumptions could be implemented as a more efficient data structure than a list. This might have a big impact on the efficiency of certain derived decision procedures, as described elsewhere =-=[Har94]-=-. It is likely that such a modification would imply a change in assumption ordering, and cause some existing proofs (especially those relying on FIRST ASSUM) to break. 122. The use of annotations, as... |

26 |
The constructive engine
- Huet
- 1989
(Show Context)
Citation Context ...H90]. Exploring important implementation issues. One interesting research field is the investigation of representations of the lambda calculus for theorem provers (some of the choices are explored in =-=[Hue89]-=-). As one example of the tradeoffs to be considered, de Bruijn terms simplify substitution and allow quick tests of alpha-equivalence; however, they also generate more garbage, since the breaking apar... |

19 | The HOL logic extended with quantification over type variables - Melham - 1993 |

19 |
Abstract theories in HOL
- Windley
- 1992
(Show Context)
Citation Context ...ms have already been implemented in some form or other; we include them merely for completeness. 1. Lazy theorems could be added, as proposed by Richard Boulton [Bou92]. 2. Notions of abstract theory =-=[Win92]-=- could be directly supported, as in [Gun91]. For example, a theorem could have two separate assumption lists, one of them considered as an abstract context. The intended interpretation would be exactl... |

11 |
Recording HOL proofs
- Wong
- 1993
(Show Context)
Citation Context ...enefits of partial evaluation will need to be measured in a full-scale HOL implementation. 5. A small system might be a better target for proof recording as has already been done in HOL88 by Wai Wong =-=[Won93]-=-. This could be used in conjunction with proofcheckers that have been written with respect to formalized notions of HOL proof, such as those developed by Rob Arthan [Art90] and Joakim von Wright [vW94... |

10 |
NuPRL as a General Logic
- Constable, Howe
- 1990
(Show Context)
Citation Context ...ols such as extensible parsers and pretty printers, parameterized rewriting engines, and other specializable reasoning tools. For discussion of these issues from a somewhat different perspective, see =-=[CH90]-=-. Exploring important implementation issues. One interesting research field is the investigation of representations of the lambda calculus for theorem provers (some of the choices are explored in [Hue... |

9 |
Representing a logic in the LCF metalanguage
- Gordon
- 1982
(Show Context)
Citation Context ...ose wishing to teach aspects of higher-order logic and theorem proving. Another use would be to provide an executable introduction to the essence and structure of LCF implementations in general (like =-=[Gor82]-=-), and the hol90 implementation in particular. An analogous development for the Calculus of Constructions can be found in [Hue89]. 2Correctness. Verification tools ought to be correct. gtt is certain... |

6 |
Lazy techniques for fully expansive theorem proving
- Boulton
- 1993
(Show Context)
Citation Context ...ght through. In fact, the first few items have already been implemented in some form or other; we include them merely for completeness. 1. Lazy theorems could be added, as proposed by Richard Boulton =-=[Bou92]-=-. 2. Notions of abstract theory [Win92] could be directly supported, as in [Gun91]. For example, a theorem could have two separate assumption lists, one of them considered as an abstract context. The ... |

4 | Adding new rules to an LCF-style logic implementation: preliminary report - Slind - 1993 |

2 |
A formal specification of HOL
- Arthan
- 1990
(Show Context)
Citation Context ...n done in HOL88 by Wai Wong [Won93]. This could be used in conjunction with proofcheckers that have been written with respect to formalized notions of HOL proof, such as those developed by Rob Arthan =-=[Art90]-=- and Joakim von Wright [vW94]. 6. The ‘integers’ in both SML and CAML Light are highly unsatisfactory. In CAML Light they are underlying machine integers minus one bit (presumably needed for garbage c... |

2 |
Note to info-hol mailing list, archive number 0914. Tagging theorems for proof acceleration
- Gordon
- 1993
(Show Context)
Citation Context ...a primitive version of a supposedly derived rule is used, or that some external tool has been used to derive the ‘theorem’. This is an elaboration of a scheme proposed by Mike Gordon and described in =-=[Gor93]-=-. More sophisticated tagging schemes might allow precise tracking of theorem interdependencies. 4. Alternative representations for numerals could be experimented with. This idea has been a preoccupati... |

2 | Representing higher order logic proofs in HOL - Wright - 1994 |

1 |
Abstract Theories for HOL
- Gunter
- 1991
(Show Context)
Citation Context ...rm or other; we include them merely for completeness. 1. Lazy theorems could be added, as proposed by Richard Boulton [Bou92]. 2. Notions of abstract theory [Win92] could be directly supported, as in =-=[Gun91]-=-. For example, a theorem could have two separate assumption lists, one of them considered as an abstract context. The intended interpretation would be exactly the same (as if the two assumption lists ... |

1 |
Implementation and use of annotations
- Kalvala, Archer, et al.
(Show Context)
Citation Context ... modification would imply a change in assumption ordering, and cause some existing proofs (especially those relying on FIRST ASSUM) to break. 122. The use of annotations, as proposed by Sara Kalvala =-=[KAL92]-=-, could be supported. These allow the maintenance of logically irrelevant but practically useful information in the theorem or proof structure. Possible applications include documenting proofs and con... |

1 |
Functional programming in CAML-Light
- Mauny
- 1993
(Show Context)
Citation Context ...ction with a prettyprinter generator. 4 Portability The gtt system has already been developed in parallel SML and CAML Light versions, with some work being done first in SML, some in CAML. CAML Light =-=[Mau93]-=- is a compact, well-engineered implementation of ML which, in stark contrast to any implementations of SML or ‘Classic’ ML, runs well on small machines. Apart from the interest of porting HOL to other... |

1 |
Tom Melham. The HOL logic extended with quantification over type variables. In L. Claesen and M. Gordon [LM92]. Konrad Slind. Adding new rules to an LCF-style logic implementation: Preliminary report
- INRIA
- 1993
(Show Context)
Citation Context ... that is of fundamental importance when developing an implementation. However, we would like to go further and assert that gtt is simple enough to reason about formally. The recent work of von Wright =-=[vW94]-=- is encouraging in this regard, although we caution that verification of gtt must deal with code that uses exceptions and reference variables: the former are frequently used in the implementation and ... |