\chapter{Introduction} \section{Architecture and Terminology} Everything in \why revolves around the notion of \emph{task}\index{task}. \why, as a platform, is a tool that translates its input to a number of tasks, and dispatches these tasks to external provers. Essentially, a task is a sequence of premises followed by a goal (i.e.~a \emph{logical sequent} with exactly one formula in the succedent). The language of tasks is based on first-order language extended with \begin{itemize} \item polymorphic types; \item algebraic types together with pattern matching; \item definitions of functions and predicates, possibly recursive or mutually recursive; \item inductively defined predicates; \item \texttt{let} and \texttt{if-then-else} constructs; %\item Hilbert's epsilon construct \end{itemize} \todo{continue} \section{Organization of this document} This document is organized as follows. The first part, made of three chapters, provides tutorials to learn how to use \why. The second part gathers reference manuals, giving detailed technical informations. Chapter~\ref{chap:starting} explains how to get started with the Why IDE for visualizing theories and goals, calling external provers for trying to solve them, and applying transformations to simplify them. It also presents the basic use of \why in batch. Chapter~\ref{chap:syntax} presents the input syntax for file defining Why theories. The semantics is given informally with examples. The two first chapters are thus to read for the beginners. %Chapter~\ref{chap:whyml} presents the %verification condition generator built upon the Why3 core. % The two % next chapters are for users with a little more experience, in % particular those who wants to use Why for verification of algorithms. Chapter~\ref{chap:api} presents how to use \why programmatically, using the API. It is for the experimented users, who wants to link \why library with their own code. Part 2 provides: \begin{itemize} \item In Chapter~\ref{chap:syntaxref}, the input syntax of files. \item In Chapter~\ref{chap:library}, the standard library of theories distributed with \why. \item In Chapter~\ref{chap:manpages}, the technical manual pages for the tools of the platform. All tool options, and all the configuration files are described in details there. % \item In Chapter~\ref{chap:apidoc}, the technical documentation of the API. \end{itemize} %%% Local Variables: %%% mode: latex %%% TeX-PDF-mode: t %%% TeX-master: "manual" %%% End: