HOL4 vs UPPAAL
HOL4
hol-theorem-prover.orgUPPAAL
uppaal.orgSide by side
| Figure | HOL4 | UPPAAL |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 2 |
| Spec score · Formal Verification Tools | 8.1 (#9) | 7.3 (#28) |
| Development | HOL is a collaborative project hosted on GitHub and welcomes code contributions via pull requests. | UPPAAL was created through collaboration between Uppsala University and Aalborg University and is maintained by Aalborg University's Distributed, Embedded and Intelligent Systems group. |
| Purpose | HOL4 is a proof assistant for higher-order logic and a programming environment for proving theorems and implementing proof tools. | UPPAAL is an integrated environment for modeling, simulation, and verification of real-time systems represented as networks of timed automata. |
| Support | The community offers help through a mailing list and Zulip chat, while bug reports and feature suggestions go to GitHub issues. | Academic support is community-based, with documentation, discussions, mailing lists, and Stack Overflow; the team says it may be unable to answer all direct requests. |
| Use cases | The maker describes HOL as particularly suitable for combining deduction, execution and property checking. | The site identifies real-time controllers and communication protocols with timing-critical behavior as typical application areas. |
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.
UPPAAL
UPPAAL is an integrated environment for modeling, simulating, and verifying real-time systems as networks of timed automata. Its language supports clock and data variables, including bounded integers and arrays. The model checker uses symbolic state-space exploration for invariant and reachability properties and can produce diagnostic traces. Statistical Model Checking estimates probabilities, compares a probability with a value, or compares two probabilities. UPPAAL Stratego supports generating, optimizing, comparing, and exploring strategies for stochastic priced timed games. Related tools include CORA, TRON, TIGA, ECDAR, and COSHY for cost-optimal analysis, testing, timed games, refinement, and hybrid-system control. Typical applications include real-time controllers and timing-critical communication protocols. Desktop packages support Windows, macOS, and Linux, including macOS x86_64 and Aarch64. The graphical interface needs Java 17 or later; verifyta runs without Java. Academic users register for a free license key, retrieved over the internet. Commercial and other non-academic use requires a separate license.