Home

Why3

Why3 is an open-source platform for deductive program verification. It provides WhyML, a programming and specification language, and a toolchain that supports writing software together with formal specifications and generating verification conditions. Why3 is designed to be a front end to multiple automated and interactive theorem provers.

Why3 programs are written in WhyML and annotated with preconditions, postconditions, and loop invariants, as well

Why3 interoperates with several back-end provers, including Alt-Ergo, Z3, CVC4, Vampire, and E, and can run proofs

Why3 is used in research and education as a lightweight, extensible framework for experimenting with formal

as
abstract
predicates
and
lemmas.
The
system
translates
annotated
WhyML
code
into
logical
verification
conditions
and
dispatches
them
to
provers.
By
organizing
code
into
modules
and
theories,
Why3
supports
modular
verification
and
the
separation
of
concerns
between
specification
and
implementation.
automatically
or
interactively.
It
provides
a
proof
interface
for
guiding
solvers
and
for
developing
manual
proofs
when
automation
falls
short.
The
platform
also
supports
defining
algebraic
data
types,
recursive
functions,
and
ghost
code
used
for
specification
purposes.
verification
techniques.
It
serves
as
a
practical
environment
for
teaching
program
correctness,
prototyping
verification
ideas,
and
comparing
prover
capabilities
on
real-world
software
tasks.
Its
design
emphasizes
portability
across
languages
and
proof
engines,
making
it
a
versatile
tool
in
the
formal
methods
landscape.