Skip to content
SPECIFICTION
Get listed

Why3

why3.org

Free plan WebWindowsLinuxAPISelf-hosted
Visit why3.org
Spec score 8.0 #12 of 35 in Formal Verification Tools

What it is

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.

Spec sheet

Purpose
Why3 is a platform for deductive program verification that uses WhyML and external theorem provers to discharge verification conditions.Read 10 Oct 2026 · why3.org
Integrations
The project lists EasyCrypt, Frama-C, and SPARK 2014 among projects that use Why3.Read 10 Oct 2026 · why3.org
Support
The project provides a user mailing list, a Zulip chat, and a bug tracking system.Read 10 Oct 2026 · why3.org
License
TryWhy3 is distributed under the GNU Lesser General Public License version 2.1 with a special linking exception.Read 10 Oct 2026 · why3.org
Browser access
TryWhy3 is a JavaScript version of the Why3 Verification Platform that runs in a browser.Read 9 Oct 2026 · why3.org
Browser version
TryWhy3 is a JavaScript-based version of the Why3 Verification Platform that can be used in a browser.Read 10 Oct 2026 · why3.org
Code extraction
WhyML programs can be automatically extracted into correct-by-construction OCaml programs.Read 9 Oct 2026 · why3.org
Development
Why3 is developed by the Inria Toccata team, a joint research team of Inria Saclay-Île-de-France, Université Paris-Saclay, and CNRS.Read 10 Oct 2026 · why3.org
Downloads
The site lists Debian, Fedora, and Ubuntu packages and links to source release 1.8.2.Read 10 Oct 2026 · why3.org
Editor integrations
Why3 distributions include configuration files for Emacs and Vim, plus shell completion files for bash and zsh.Read 9 Oct 2026 · why3.org
Extensibility
Why3 can be extended with support for new external provers and used as a software library through its API.Read 9 Oct 2026 · why3.org
Extensibility and API
Why3 can be extended with support for new theorem provers and used as a software library through an OCaml API.Read 10 Oct 2026 · why3.org
Installation
Why3 can be installed via Opam, run from a Docker image, or compiled from source.Read 9 Oct 2026 · why3.org
Language verification
WhyML is used as an intermediate language for verification of Rust, OCaml, and Ada programs.Read 10 Oct 2026 · why3.org
Notable limitation
Loop invariant inference is described as work in progress, with many features still very limited.Read 9 Oct 2026 · why3.org
Program extraction
WhyML programs can be automatically extracted as correct-by-construction OCaml programs.Read 10 Oct 2026 · why3.org
Proof sessions
The graphical interface saves proof attempts and transformations in an XML file and can replay obsolete proof attempts.Read 9 Oct 2026 · why3.org
Prover setup
After installing a new prover, the site says to rerun `why3 config --detect`.Read 10 Oct 2026 · why3.org
Prover support
Why3 supports automated and interactive external provers, including Alt-Ergo, Z3, Rocq, PVS, and Isabelle/HOL.Read 10 Oct 2026 · why3.org
Standard library
Why3 includes logical theories and programming data structures such as arrays, queues, and hash tables.Read 10 Oct 2026 · why3.org
WhyML
WhyML supports specifications and programs with preconditions, postconditions, assertions, and loop invariants.Read 9 Oct 2026 · why3.org

Plans and prices

Why3 Free GNU Lesser General Public License version 2.1 with a special linking exception Read 10 Oct 2026 · why3.org

Every Why3 plan and price →

Strong points and limits

Strong points

  • Supports automated and interactive external provers.
  • WhyML programs can be extracted as OCaml.
  • Available through a browser version and installation options.
  • Graphical interface can replay obsolete proof attempts.

Limits

  • External theorem provers must be installed and configured separately.
  • Loop invariant inference is still a work in progress.
  • Many features remain very limited.

Who it suits

Why3 suits developers and verification practitioners working with program specifications and deductive proofs. It is relevant to teams using WhyML or verifying C, Java, Rust, or Ada programs.

Verdict

Why3 provides a flexible verification platform with WhyML, prover integrations, and an OCaml API. Users should account for separate prover setup and the stated limits of loop invariant inference.

Where Specifiction places it

Alternatives to Why3All alternatives →