Rocq vs Why3
Rocq
rocq-prover.orgWhy3
why3.orgSide by side
| Figure | Rocq | Why3 |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | Yes |
| Windows | Yes | Yes |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Formal Verification Tools | 8.5 (#3) | 8.0 (#12) |
| Editor integrations | The official VsRocq extension supports Visual Studio Code; the site also documents RocqIDE, Emacs Proof General, and Vim or Neovim Coqtail. | Why3 distributions include configuration files for Emacs and Vim, plus shell completion files for bash and zsh. |
| License | The Rocq Prover is distributed under the GNU Lesser General Public Licence Version 2.1 (LGPL). | TryWhy3 is distributed under the GNU Lesser General Public License version 2.1 with a special linking exception. |
| Program extraction | Rocq can extract executable programs from specifications to OCaml, Haskell, or Scheme. | WhyML programs can be automatically extracted as correct-by-construction OCaml programs. |
| Purpose | Rocq Prover is an interactive theorem prover and proof assistant for developing mathematical proofs, formal specifications, programs and proofs that programs meet specifications. | Why3 is a platform for deductive program verification that uses WhyML and external theorem provers to discharge verification conditions. |
| Support | Users can report installation trouble or extension bugs in the dedicated Rocq Zulip stream. | The project provides a user mailing list, a Zulip chat, and a bug tracking system. |
Plans
In their own words
Rocq
Rocq is a free interactive theorem prover and proof assistant for building mathematical proofs, formal specifications and programs, including proofs that programs meet specifications. Its Gallina language supports specification and mathematical work and is based on the Polymorphic, Cumulative Calculus of Inductive Constructions. A relatively small certification kernel machine-checks proofs. Rocq also offers interactive proof methods, decision and semi-decision algorithms, and a tactic language for defining methods. Certified programs can be extracted to OCaml, Haskell or Scheme, and the system can connect with external computer algebra systems or theorem provers. The Rocq Platform bundles the core prover with libraries and plugins for development and teaching. Its scripts install Rocq and packages on macOS, Windows and many Linux distributions; precompiled installers are available for macOS and Windows, but not Linux. Editor options include the VsRocq Visual Studio Code extension, RocqIDE, Proof General and Coqtail. Rocq is written in OCaml and distributed under the GNU Lesser General Public Licence Version 2.1.
Why3
Why3 is a platform for deductive program verification. It uses WhyML to express programs and specifications, then works with external automated or interactive theorem provers to discharge verification conditions. WhyML supports preconditions, postconditions, assertions, and loop invariants, alongside logical theories and data structures such as arrays, queues, and hash tables. External provers need to be installed and configured separately. Why3 can be extended with support for new provers and used as a software library through its OCaml API. WhyML programs can be extracted automatically into correct-by-construction OCaml programs, and WhyML is also used as an intermediate language for verification of C, Java, Rust, and Ada. TryWhy3 provides a JavaScript version that runs in a browser. Installation options include Opam, Docker, source compilation, and listed Debian, Fedora, and Ubuntu packages. Its graphical interface saves proof attempts and transformations in an XML file and can replay obsolete attempts. Why3 is free and open source under GNU LGPL 2.1 with a special linking exception. Loop invariant inference is a work in progress, and many features remain very limited.