Commit b402afbd authored by MARCHE Claude's avatar MARCHE Claude
Browse files

doc: version, prover detection

parent 66a33777
# Why version
......@@ -2,6 +2,7 @@
\section{Compilation, Installation}
Compilation of Why3 must start with a configuration phase which is run as
......@@ -29,28 +30,78 @@ liblablgtk2-ocaml-dev liblablgtksourceview2-ocaml-dev
It is also installable from sources, available from the site \url{}
\item TODO Claude: sqlite3
\item The Ocaml bindings of the sqlite3 library
For debian-based Linux distributions, you can install the package
It is also installable from sources, available from the site
\subsection{Local use, without installation}
It is not mandatory to install Why3 to use it. Local use is obtained via
./configure --enable-local
commands are available in subdirectory \texttt{bin/}.
The Why3 executables are then available in subdirectory \texttt{bin/}.
\section{Installation of external provers}
Why3 can use a wide range of external theorem provers. These need to
be installed separately, and then Why3 needs to be configured to use
them. There is no need to install these provers before compiling and
installing Why.
For installation of external provers, please look at the Why provers
tips page \url{}.
IDE/Detect provers
For configuring Why3 to use the provers, follow intructions given in
Provers which are auto-detected: (share/prover-detection-data)
\section{The \texttt{why3config} command-line tool}
pour chaque prouveur: lien sur page why/prover tips.
Why3 must be configured to access external provers. Typically, this is done
by running either the command line tool
or using the menu
File/Detect provers
of the IDE. This must be done again each time a new prover is installed.
The set of all provers which are attempted to detect is described in
the readable configuration file \texttt{provers-detection-data.conf}
of the Why3 data directory (\eg{}
\texttt{/usr/local/share/why3}). Advanced users may try to modify this
file to add support for detection of other provers. (In that case,
please consider submitting a new prover configuration on the bug
tracking system).
The result of the prover detection is stored in the user's
configuration file (\eg{} \texttt{~/.why.conf}). Again, this file is
human readable, and advanced users may modify it in order to
experiment different ways of calling provers, \eg{} different versions
of the same prover, or with different options.
The provers which are typically attemped for detection are
\item Alt-Ergo~\cite{conchon08smt,ergo}: \url{}
\item CVC3~\cite{BarTin-CAV-07}: \url{}
\item Coq~\cite{CoqArt}: \url{}
\item Eprover~: \url{}
\item Gappa~\cite{melquiond08rnc}: \url{}
\item Simplify~\cite{simplify05}: \url{}
\item Spass~: \url{}
\item veriT~: \url{}
\item Yices~\cite{DM06}: \url{}
\item Z3~\cite{z3}: \url{}
\section{The \texttt{why3} command-line tool}
......@@ -92,11 +143,12 @@ pour chaque prouveur: lien sur page why/prover tips.
\item[File/Detect provers]
\subsection{Structure of the database file}
\section{The \texttt{why.conf} configuration file}
@comment{{This file has been generated by bib2bib 1.95}}
@comment{{This file has been generated by bib2bib 1.94}}
@comment{{Command line: bib2bib -c '$key="paskevich09rr" or $key="ayad10ijcar" or $key="filliatre07cav" or $key="conchon08smt" or 1=2' /home/cmarche/biblio/abbrevs.bib /home/cmarche/biblio/demons.bib /home/cmarche/biblio/demons2.bib /home/cmarche/biblio/demons3.bib /home/cmarche/biblio/team.bib /home/cmarche/biblio/crossrefs.bib /home/cmarche/biblio/crossrefs2.bib}}
@comment{{Command line: /usr/bin/bib2bib -c '$key="ayad10ijcar" or $key="CoqArt" or $key="conchon08smt" or $key="paskevich09rr" or $key="z3" or $key="ergo" or $key="simplify05" or $key="DM06" or $key="BarTin-CAV-07" or $key="melquiond08rnc" or $key="filliatre07cav" or 1=2' /home/cmarche/biblio/abbrevs.bib /home/cmarche/biblio/demons.bib /home/cmarche/biblio/demons2.bib /home/cmarche/biblio/demons3.bib /home/cmarche/biblio/team.bib /home/cmarche/biblio/crossrefs.bib /home/cmarche/biblio/crossrefs2.bib}}
@string{sv = {Springer}}
......@@ -8,6 +8,56 @@
@string{lncs = {Lecture Notes in Computer Science}}
author = {Clark Barrett and Cesare Tinelli},
title = {{CVC3}},
booktitle = {Proceedings of the 19th International Conference on Computer Aided Verification (CAV'07), Berlin, Germany},
pages = {},
year = 2007,
editor = {W.~Damm and H.~Hermanns},
volume = {},
series = {Lecture Notes in Computer Science},
publisher = {Springer},
url = {}
author = {Yves Bertot and Pierre Cast\'eran},
title = {Interactive Theorem Proving and Program Development},
subtitle = {Coq'Art: The Calculus of Inductive Constructions},
publisher = {Springer-Verlag},
serie = {Texts in Theoretical Computer Science},
year = 2004
author = {Bruno Dutertre and Leonardo de Moura},
institution = {SRI International},
title = {The {Yices} {SMT} Solver},
year = {2006},
note = {available at \url{}}
author = {David Detlefs and
Greg Nelson and
James B. Saxe},
title = {Simplify: a theorem prover for program checking.},
journal = {J. ACM},
volume = {52},
number = {3},
year = {2005},
pages = {365-473},
ee = {},
bibsource = {DBLP,}
author = {Leonardo de Moura and Nikolaj Bj{\o}rner},
title = {{Z3}, An Efficient {SMT} Solver},
note = {\url{}}
author = {Fran\c{c}ois Bobot and Sylvain Conchon and \'Evelyne Contejean
and St\'ephane Lescuyer},
......@@ -33,6 +83,18 @@
isbn = {978-1-60558-440-9}
author = {Sylvain Conchon and \'Evelyne Contejean},
title = {The {Alt-Ergo} automatic Theorem Prover},
url = {},
note = {\url{}},
topics = {team,lri},
year = 2008,
x-equipes = {demons PROVAL},
x-type = {manuel},
x-support = {diffusion}
author = {Jean-Christophe Filli\^atre and Claude March\'e},
title = {The {Why/Krakatoa/Caduceus} Platform for Deductive Program
......@@ -50,6 +112,26 @@
x-cle-support = {CAV}
author = {Guillaume Melquiond},
title = {Floating-point arithmetic in the {C}oq system},
booktitle = {Proceedings of the 8th Conference on Real Numbers and Computers},
address = {Santiago de Compostela, Spain},
year = {2008},
pages = {93--102},
note = {\url{}},
url = {},
x-equipes = {demons PROVAL},
x-type = {article},
x-support = {actes},
x-cle-support = {RNC},
topics = {team},
x-editorial-board = {yes},
x-international-audience = {yes},
x-proceedings = {yes},
x-pdf = {}
author = {Andrei Paskevich},
title = {Algebraic types and pattern matching in the logical language of the {Why} verification platform},
......@@ -15,6 +15,8 @@
......@@ -23,33 +25,47 @@
{\fontsize{40}{40pt}\selectfont\bfseries\sffamily The Why3 platform}
{\Huge\bfseries Why3 manual}
{\Large F. Bobot$^{1,2}$ \\
J.-C. Filli\^atre$^{2,1}$ \\
C. March\'e$^{3,1}$ \\
A. Paskevich$^{1,2}$}
Version \whyversion{}, December 2010
Fran\c{c}ois Bobot$^{1}$ \\
Jean-Christophe Filli\^atre$^{2}$ \\
Claude March\'e$^{3}$ \\
Andrei Paskevich$^{1}$
$^1$ Univ Paris-Sud, Orsay, F-91405 \\
$^2$ LRI, CNRS, Orsay, F-91405 \\
$^3$ INRIA Saclay - \^Ile-de-France, ProVal, Orsay, F-91893
\textcopyright 2010-2010 Univ Paris-Sud, CNRS, INRIA
\textcopyright 2010 Univ Paris-Sud, CNRS, INRIA
This work has been supported by the `U3CAT' national ANR project
This work has been partly supported by the `U3CAT' national ANR project
(ANR-08-SEGI-021-08, \url{}) and by the
Hi-Lite (\url{}) FUI project of the
System@tic competitivity cluster.
......@@ -57,10 +73,6 @@ $^3$ INRIA Saclay - \^Ile-de-France, ProVal, Orsay, F-91893
This is the manual for the Why platform version 3, or Why3 for
......@@ -72,9 +84,40 @@ which allows for the end user to easily add the support for a new
external prover if wanted. A major new feature is also the ability
to use Why programmatically, via a well-designed API.
We gratefully thank all the people who contributed to this document:
Why3 project page is \url{}. The
last distribution is available, in source format, together with this
documentation and several examples.
Why3 is distributed as open source and freely available under the
terms of the GNU LGPL 2.1. See the file \texttt{LICENSE}.
See the file \texttt{INSTALL} for quick installation instructions, and
Section~\ref{sec:install} od this document for more detailed
There is a public mailing list for users' discussions:
Report any bug to the Why3 Bug Tracking System:
% \section*{Acknowledgements}
% We gratefully thank all the people who contributed to this document:
% Germain Faure
% Johannes Kanig
% Simão Melo de Sousa
......@@ -17,6 +17,8 @@
(* *)
This file builds some goals using the API and calls
the alt-ergo prover to check them
......@@ -104,6 +104,7 @@ name = "Coq"
exec = "coqc"
version_switch = "-v"
version_regexp = "The Coq Proof Assistant, version \\([^ \n]+\\)"
version_ok = "8.3"
version_ok = "8.2pl2"
version_ok = "8.2pl1"
version_ok = "8.2"
......@@ -290,17 +290,16 @@ let show_about_window () =
let about_dialog =
~authors:["Francois Bobot";
"Jean-Christophe Filliatre";
"Johannes Kanig";
"Claude Marche";
~authors:["François Bobot";
"Jean-Christophe Filliâtre";
"Claude Marché";
"Andrei Paskevich"
~copyright:"Copyright 2010"
~copyright:"Copyright 2010 Univ Paris-Sud, CNRS, INRIA"
~license:"Gnu Lesser General Public License"
~website_label:"Click here for the web site"
~version:"3.0 alpha"
~website_label:"Project web site"
let ( _ : GWindow.Buttons.about) = about_dialog#run () in
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment