Why3 is a platform for deductive program verification. It provides a rich
language for specification and programming, called WhyML, and relies on
external theorem provers, both automated and interactive, to discharge
verification conditions. Why3 comes with a standard library of logical
theories (integer and real arithmetic, Boolean operations, sets and maps,
etc.) and basic programming data structures (arrays, queues, hash tables,
etc.). A user can write WhyML programs directly and get correct-by-
construction OCaml programs through an automated extraction mechanism.
WhyML is also used as an intermediate language for the verification of C,
Java, or Ada programs.
Why3 is a complete reimplementation of the former Why platform. Among the
new features are: numerous extensions to the input language, a new
architecture for calling external provers, and a well-designed API,
allowing to use Why3 as a software library. An important emphasis is put
on modularity and genericity, giving the end user a possibility to easily
reuse Why3 formalizations or to add support for a new external prover if
wanted.
WWW: http://why3.lri.fr
===> The following configuration options are available for why3-0.83_2:
DOCS=on: Build and/or install documentation
===> Use 'make config' to modify these settings
math/why3: Unbreak after ocaml-findlib change
Use the same technique madpilot used on x11-toolkits/ocaml-lablgtk2
to restore the build after the (unexpected) changed to the output
of ocamlfindlib during its update to 1.7.1
While here, document previously unknown ocamlfind requirement.
math/why3: Release port
I only care about math/why3-gpl, which has been decoupled from why3 and
has already diverged. Before resetting MAINTAINER, I reintegrated the
Makefile.common file (only used by this port) into the main Makefile. In
the process, some options placeholders were lost but in all probability
these options can't be built without serious work on external ports.
math/why: remove hidden references to math/isabelle
There was a placeholder to support isabelle, but the port is being
removed so let's just remove the placeholder.
Bump more ports that depend on libsqlite3.so:
- ports that set USE_SQLITE with the *_USE option helper
- ports that depend on libsqlite3 indirectly as reported by pkg rquery
Approved by: portmgr (implicit)
Add two new math ports: why3 and why3-gpl
The primary motivation for adding why3 is to support the upcoming SPARK
2014 port. However, SPARK 2014 requires a custom version. In time the
customizations should make it upstream, but currently the stock version
cannot be used to build SPARK. They are also licensed differently (LGPL2
for stock, GPLv3 for SPARK version).
Rather than force people that find why3 useful on their own to accept a
custom version, both are offered although they currently conflict.
Why3 has optional dependencies on coq, isabelle, and frama-c, and all
three have issus:
* coq rebuilds its libraries in $LOCALBASE, could be issue with coq
* isabella currently has a broken dependency (sjsml) and only for i386
(Only the first 15 lines of the commit message are shown above )