Side by side
Agda vs OpenJML
Both stand on formal verification tools. Which one you can start free with, which one lets you read the code, and what each costs once you pay.
Free plan ExtensionLinuxMac+3
Agda combines a dependently typed language with interactive proof checking and several editor options. Its browser option has explicit data-handling and reliability limitations, and compiling through GHC may require installing that dependency separately.
Visit Agda Free plan APIExtensionLinux+2
Choose OpenJML if you need a free, self-hosted way to check Java programs against JML specifications, with both deductive verification and runtime assertion checking. Look elsewhere if test suite generation or supported integration with Eclipse, Visual Studio, IntelliJ, or LSP is essential.
Visit OpenJMLThe facts
| Agda | OpenJML | |
|---|---|---|
| Free plan | Yes | Yes |
| Open source | Not published | Not published |
| Runs on | Extension, Linux, Mac, Self-hosted, Web, Windows | API, Extension, Linux, Mac, Windows |
| Lowest paid plan | Not published | Free or on request |
| Plans published | None | 1 |
| Maker | Not published | Not published |
| Website | wiki.portal.chalmers.se | openjml.org |
| On formal verification tools | #8 of 34 | #12 of 34 |
Agda: what it does well
- Free and open source
- Interactive proof assistant for writing and checking proofs
- Editor support includes Emacs, VS Code, Neovim, and Vim
- Prebuilt binaries cover Windows, Linux, and macOS
- Agda Pad supports browser use and small-project collaboration
What to know first
- GHC is not bundled with most distributions
- The standard library is optional and not bundled with all packages
- Agda Pad stores programs unencrypted
- Agda Pad provides no service guarantees
OpenJML: what it does well
- Free, open-source command-line tool licensed under GPL version 2.
- Provides static deductive verification and runtime assertion checking.
- Supports contracts and counterexamples for Java and JML input.
- Bundles a selection of SMT solvers with releases.
- Language server offers navigation, highlighting, syntax coloring, and diagnostics.
What to know first
- Test suite generation is not yet supported.
- Listed Eclipse, Visual Studio, IntelliJ, and LSP integrations are obsolete and unsupported.
- VS Code and Eclipse extensions require an OpenJML installation.
- Runtime assertion checking generally covers Java elements through Java 7, with exceptions.
