HOL4
What it is
HOL4 is a free, interactive proof assistant for higher-order logic. It provides a programming environment for proving theorems and implementing proof tools, and is described as suitable for work combining deduction, execution, and property checking. Built-in decision procedures and theorem provers can establish many simple theorems; an oracle mechanism can connect HOL to external programs such as SMT and BDD engines. It supports HOL higher-order logic and Standard ML, and can produce proof artifacts and counterexamples.
HOL4 is self-hosted and available for Linux, macOS, and Windows under the Modified (3-clause) BSD licence. It requires a Standard ML compiler, with Poly/ML recommended. Windows installation uses Cygwin or the Windows Linux subsystem with Poly/ML; Moscow ML is another option, but the maker notes it runs many times slower, lacks some Poly/ML libraries, and does not support concurrent Holmake builds. HOL provides Emacs modes for syntax and session interaction, while its install guide links to Vim plugin documentation. Online resources include a tutorial, quick reference, FAQ, manuals, and generated indexes. Help is available through a mailing list and Zulip chat. The maker estimates about a month for a beginner to become comfortable with HOL.
For and against
For
- Free software under the Modified (3-clause) BSD licence.
- Built-in procedures can establish many simple theorems.
- Oracle mechanism connects to external SMT and BDD engines.
- Includes documentation, mailing-list help, and Zulip chat.
Against
- Requires a Standard ML compiler.
- The maker estimates about a month to become comfortable.
- Moscow ML is slower and lacks some Poly/ML capabilities.
The verdict
HOL4 offers theorem-proving tools and external-engine connections as free, self-hosted software. New users should account for its compiler requirement and the maker's estimate of about a month to become comfortable.
Who it suits
HOL4 may suit people working on theorem proving, formal reasoning, or proof-tool development who are comfortable with Standard ML and self-hosted software. Its documentation and community channels may support those learning the system.
Plans and prices
HOL4
Free software under the Modified (3-clause) BSD licence
Read 8 Oct 2026 · hol-theorem-prover.org
On the record
- Automation
- Built-in decision procedures and theorem provers can automatically establish many simple theorems.hol-theorem-prover.org · read 8 Oct 2026
- Development
- HOL is a collaborative project hosted on GitHub and welcomes code contributions via pull requests.hol-theorem-prover.org · read 7 Oct 2026
- Documentation
- HOL provides online searchable manuals, reference documentation and a theory dependency graph, and builds a local reference copy during installation.hol-theorem-prover.org · read 8 Oct 2026
- External tools
- An oracle mechanism gives HOL access to external programs such as SMT and BDD engines.hol-theorem-prover.org · read 8 Oct 2026
- Integrations
- The maker documents editor support for Emacs and Vim.hol-theorem-prover.org · read 8 Oct 2026
- Learning curve
- The maker estimates that starting from scratch, it takes about a month on average to become comfortable using HOL.hol-theorem-prover.org · read 8 Oct 2026
- License
- HOL is free software released under the Modified (3-clause) BSD licence.hol-theorem-prover.org · read 8 Oct 2026
- Notable limitation
- The maker notes that Moscow ML HOL lacks libraries available in the Poly/ML version and does not support concurrent Holmake builds.hol-theorem-prover.org · read 8 Oct 2026
- Purpose
- HOL4 is a proof assistant for higher-order logic and a programming environment for proving theorems and implementing proof tools.hol-theorem-prover.org · read 8 Oct 2026
- Requirements
- HOL requires a Standard ML compiler; the installation guide recommends Poly/ML and also lists Moscow ML, with MLTon supported for building tool executables.hol-theorem-prover.org · read 8 Oct 2026
- Support
- The community offers help through a mailing list and Zulip chat, while bug reports and feature suggestions go to GitHub issues.hol-theorem-prover.org · read 8 Oct 2026
- Use cases
- The maker describes HOL as particularly suitable for combining deduction, execution and property checking.hol-theorem-prover.org · read 8 Oct 2026
- Users
- The about page names CakeML, HOL4P4, HolBA and Verifereum among projects using HOL.hol-theorem-prover.org · read 7 Oct 2026
- Windows limitation
- The Windows guide says Moscow ML runs many times slower than Poly/ML and does not support concurrent Holmake builds.hol-theorem-prover.org · read 7 Oct 2026
- Windows requirement
- The Windows guide requires Cygwin or the Windows Linux subsystem with Poly/ML, or describes Moscow ML as an alternative that is not recommended.hol-theorem-prover.org · read 7 Oct 2026
- Windows support
- On Windows, the maker documents installation using Cygwin or the Microsoft Linux subsystem, and also describes a less-featured Moscow ML build for a standard Windows console.hol-theorem-prover.org · read 8 Oct 2026
The review
HOL4 is a self-hosted environment for interactive theorem proving in higher-order logic. It is aimed at researchers, verification engineers, and developers who need programmable proof tools rather than a packaged point-and-click checker. The trade-off is clear: broad, extensible formal-methods capability comes with compiler setup and a substantial commitment to learning the system.
Overview
HOL4 combines deduction, program execution, and property checking in one proof assistant. Its programming environment uses Standard ML, so users can implement proof tools as well as apply existing theories and tactics. That makes it especially relevant to projects where the proof workflow itself must be engineered, inspected, and extended.
The software is free under the Modified (3-clause) BSD licence and is deployed on the user’s own systems. The project is developed collaboratively on GitHub and accepts contributions through pull requests. Projects named by the developers include CakeML, HOL4P4, HolBA, and Verifereum, indicating use in substantial formal-methods work.
Key features
- Higher-order logic: HOL4 supports theorem-proving with proof artifacts and counterexamples. This suits users who need auditable formal results and the ability to investigate failed claims, but it assumes comfort with formal logic rather than hiding that complexity behind a simplified interface.
- Programmable proof environment: Standard ML can be used to build proof tools and interact with HOL sessions. That flexibility is valuable for custom research and verification pipelines; teams seeking only a fixed set of checks may find the programming requirement unnecessary overhead.
- Automation: Built-in decision procedures and theorem provers can discharge many straightforward theorems, reducing repetitive manual steps. They do not remove the need to design and maintain proofs for more difficult goals.
- External engines: An oracle mechanism can call external programs, including SMT and BDD engines. This broadens the techniques available inside a HOL development, while making the surrounding toolchain an important part of the project.
- Editor integration: Emacs modes provide syntax highlighting and interaction with HOL sessions, and the installation documentation points to a Vim plugin. These integrations help users who already work in those editors, but they do not turn HOL4 into a conventional graphical application.
- Documentation and support: Online resources include a tutorial, quick reference, FAQ, manuals, and generated indexes for libraries, theories, and signatures. Help is available through the hol-info mailing list and Zulip, with bugs and feature requests handled through GitHub issues.
Pricing
HOL4 costs nothing under its single HOL4 plan. The plan is free software under the Modified (3-clause) BSD licence, with no trial period because there is no paid tier to trial. Self-hosting means infrastructure and administration remain the user’s responsibility, but there are no per-seat or usage quotas described.
Platforms
HOL4 supports Linux, macOS, Windows, and self-hosted deployment. Every installation requires a Standard ML compiler; Poly/ML is recommended, while Moscow ML and MLTon are supported for building tool executables. On Windows, the documented routes use Cygwin or the Windows Linux subsystem with Poly/ML. Moscow ML offers a standard-console alternative, but it runs many times slower than Poly/ML, lacks libraries present in the Poly/ML version, and cannot perform concurrent Holmake builds. Windows users who need the full, faster workflow should therefore plan around the Linux-subsystem or Cygwin setup.
Who it's for
HOL4 is a strong fit for formal-methods researchers, verification teams, and technically experienced developers who need higher-order logic plus the ability to write their own proof machinery. It also suits organisations prepared to run self-hosted tooling and participate in a community project. It is a poor match for casual theorem proving, teams without Standard ML experience, or projects that need a quick installation and a short onboarding path: the installation guidance estimates about a month for a newcomer to become comfortable.
Pros and cons
Pros
- Free BSD-licensed software: The licence permits use without subscription cost and supports modification and redistribution.
- Extensible architecture: Standard ML programming and oracle access let advanced users combine HOL reasoning with external SMT and BDD engines.
- Serious formal-methods ecosystem: Rich manuals, generated library indexes, community channels, and established projects provide useful foundations for long-term work.
- Cross-platform self-hosting: Linux, macOS, Windows, and local deployment accommodate varied infrastructure requirements.
Cons
- Nontrivial setup: A Standard ML compiler is mandatory, and Windows installation involves Cygwin or a Linux subsystem for the recommended path.
- Long onboarding: Reaching basic comfort can take roughly a month from scratch, which makes HOL4 unsuitable for short evaluations.
- Windows compromise: The Moscow ML route is substantially slower, has fewer libraries, and omits concurrent Holmake builds.
- Specialist workflow: Higher-order logic and programmable proof development demand skills that general-purpose software teams may not have.
Alternatives
Choose Z3 instead when you want a free, MIT-licensed solver that also exposes API, web, Android, and self-hosted options. Boogie is a better fit for a .NET-based verification workflow, provided you also install a supported SMT solver. Pick cvc5 for an open-source solver with API and web availability, while checking how optional GPL dependencies affect a combined distribution.
Lean is another free theorem prover and programming environment for users who prefer its ecosystem and platform mix. PVS offers separate noncommercial and commercial arrangements, making it relevant when licensing terms must distinguish those uses. Choose Rocq for an interactive prover and dependently typed programming language distributed under the GNU Lesser General Public License. Why3 is a free, LGPL-licensed framework with API and web options. Alloy Analyzer is a free, self-contained executable for users who want a more compact analysis tool. Browse Formal Verification Tools for the wider category.
Verdict
Choose HOL4 if you need a free, self-hosted higher-order-logic system that can be programmed, extended, and connected to external reasoning engines. Look elsewhere if compiler setup, specialist notation, or a month-long learning curve conflicts with your timeline; a focused solver or a different proof ecosystem will be the more practical starting point.