 ### Андрей, вы действительно читать все эти сообщения?

parent 89f94a8f
 \chapter{Introduction} \section{Architecture and Terminology} Everything in Why3 revolves around the notion of \emph{task}\index{task}. Why3, as a platform, as 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} \section{Organization of this document} ... ...
 ... ... @@ -85,8 +85,8 @@ Should we cite \cite{conchon08smt} here? \begin{verbatim} logic f x_1 .. x_n = (g e_1 .. e_k) \end{verbatim} when each e_i is either a constant or one of the x_j, and each x_1 .. x_n occur at most once in the e_i when each $e_i$ is either a constant or one of the $x_j$, and each $x_1$ .. $x_n$ occur at most once in the $e_i$ \item[remove\_triggers] \item[simplify\_array] ... ...
 ... ... @@ -61,8 +61,8 @@ platform~\cite{filliatre07cav} for program verification. The major change is a completely new design of the architecture for calling external provers. An important emphasis is put on the genericity, which allows for the end user to easily add the support for a new external prover if wanted. An major new feature is also the ability to use Why programmatically, via an well-defined API. external prover if wanted. A major new feature is also the ability to use Why programmatically, via a well-designed API. \section*{Acknowledgements} ... ... @@ -86,6 +86,7 @@ We gratefully thank all the people who contributed to this document: \bibliographystyle{abbrv} \bibliography{manual} \end{document} %%% Local Variables: ... ...
 ... ... @@ -19,7 +19,7 @@ transformation "eliminate_if" transformation "eliminate_let" transformation "simplify_formula" transformation "simplify_trivial_quantification" transformation "intros" transformation "introduce_premisses" theory BuiltIn syntax type int "int" ... ...
 ... ... @@ -52,6 +52,7 @@ module Hls : Hashtbl.S with type key = lsymbol module Wls : Hashweak.S with type key = lsymbol val ls_equal : lsymbol -> lsymbol -> bool (** equality of function and predicate symbols *) val ls_hash : lsymbol -> int val create_lsymbol : preid -> ty list -> ty option -> lsymbol ... ... @@ -362,7 +363,11 @@ val is_fs_tuple : lsymbol -> bool (** generic term/fmla traversal *) val t_map : (term -> term) -> (fmla -> fmla) -> term -> term (** [t_map fnT fnF t] applies function fnT, resp. fnF, to each immediate subterms, resp. sub-formula, of [t] *) val f_map : (term -> term) -> (fmla -> fmla) -> fmla -> fmla (** [f_map fnT fnF f] applies function fnT, resp. fnF, to each immediate subterms, resp. sub-formula, of [t] *) val f_map_sign : (term -> term) -> (bool -> fmla -> fmla) -> bool -> fmla -> fmla ... ...