HOL4 vs OpenJML
HOL4
hol-theorem-prover.orgOpenJML
openjml.orgSide by side
| Figure | HOL4 | OpenJML |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Formal Verification Tools | 8.1 (#9) | 7.9 (#14) |
| License | HOL is free software released under the Modified (3-clause) BSD licence. | The OpenJML User Guide states that the command-line tool is licensed under GPL version 2. |
| Notable limitation | The maker notes that Moscow ML HOL lacks libraries available in the Poly/ML version and does not support concurrent Holmake builds. | The feature status page says test suite generation is not yet supported because JMLUnitNG must be ported to Java 21. |
| Purpose | HOL4 is a proof assistant for higher-order logic and a programming environment for proving theorems and implementing proof tools. | OpenJML checks whether Java programs annotated with Java Modeling Language specifications satisfy those specifications. |
Plans
In their own words
HOL4
HOL4 is a free, interactive proof assistant for higher-order logic, with a programming environment for proving theorems and building proof tools. It supports work that combines deduction, execution, and property checking. Built-in decision procedures and theorem provers can establish many simple theorems, and an oracle mechanism can connect to external programs such as SMT and BDD engines. HOL4 supports higher-order logic and Standard ML, and can produce proof artifacts and counterexamples. It is self-hosted and listed for Linux, macOS, and Windows. A Standard ML compiler is required, with Poly/ML recommended; Moscow ML and MLTon are also supported for building tool executables. Windows installation can use Cygwin or the Windows Linux subsystem with Poly/ML. Moscow ML is another option, but the Windows guide notes that it is slower, lacks some Poly/ML libraries, and cannot run concurrent Holmake builds. HOL includes Emacs modes for syntax display and session interaction, and the installation guide links to Vim plugin documentation. Online materials include a tutorial, quick reference, FAQ, manuals, and generated indexes.