Hi,

Le 11/09/2017 à 16:55, Ziqing Luo a écrit :
> But how to let Why3 check the context ?

Let me add a few things about that question.

1) Indeed, Why3 does not offer any *automatic* process to check if the
context is consistent. As said by others before, there is no way for an
automatic prover to guarantee consistency for sure.


2) Yet, there is a first and indeed easy way for being sure of
consistency of your specifications :

     *do not use any axioms*

The logic of Why3 is such that if you don't use any axiom, there is a
model. So do not use axioms if you can do without.

The majority of cases where axioms are needed is when one wants to
define a logic function that is not total (e.g division) or one that has
no simple structurally recursive definition. The next major release of
Why3 will provide new ways of defining such functions: logic functions
may be given pre-conditions, and non-structural recursive definitions
will be allowed (generating VCs for proving the termination).

3) Third: in the standard library of Why3, we indeed had to use quite a
lot of axioms. How can we ensure consistency then? Fortunately, there is
still another possibility offered by Why3: writing a model of the
theories using an interactive prover, Coq, Isabelle/HOL or PVS. This is
the process called "realization". If you cannot write your spec without
axioms, but you are strongly concern with consistency, then you should
build realizations. We did that for a majority of the theories of the
standard library. (We should do it for all of them, it is only a matter
of time available...)

Hope this helps,

- Claude

-- 
Claude Marché                          | tel: +33 1 69 15 66 08
INRIA Saclay - Île-de-France           |
Université Paris-sud, Bat. 650         | http://www.lri.fr/~marche/
F-91405 ORSAY Cedex                    |
_______________________________________________
Why3-club mailing list
Why3-club@lists.gforge.inria.fr
https://lists.gforge.inria.fr/mailman/listinfo/why3-club

Reply via email to