HOL (proof assistant)


HOL denotes a family of interactive theorem proving systems using
similar logics and implementation strategies.
Systems in this family follow the LCF approach as they are implemented as a library in some programming language.
This library implements an abstract data type of proven theorems so that new objects of this type can only be created using the functions in the library which correspond to inference rules in higher-order logic. As long as these functions are correctly implemented, all theorems proven in the system must be valid. In this way, a large system can be built on top of a small trusted kernel.
Systems in the HOL family use the ML programming language or its successors. ML was originally developed along with LCF to serve the purpose of a meta-language for theorem proving systems; in fact, the name stands for "Meta-Language".

Underlying logic

HOL systems use variants of classical higher-order logic, which has simple axiomatic foundations with few axioms and well-understood semantics.
The logic used in HOL provers is closely related to Isabelle/HOL, the most widely used logic of Isabelle.

Members of HOL family of provers

There are four HOL systems that are still maintained and developed.
Although HOL is a predecessor of Isabelle, various HOL derivatives such as HOL4 and HOL Light remain active and in use.

Selected formal proof developments

CakeML project developed a formally proven compiler for ML. Previously, HOL was used to developed a formally proven LISP implementation running on ARM, x86 and PowerPC.
HOL was also used to develop formal semantics for x86 multiprocessors, as well as semantics of machine code for Power ISA and ARM architectures.