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

syntax of agathe problem

parent a7401045
......@@ -25,6 +25,7 @@
7.8 why.conf (TODO Francois)
7.9 drivers (TODO Francois)
7.10 transformations (TODO)
** citation cruanes10 inexistent
8 API: Andrei + Francois
(should we really add that in the doc ?)
......
......@@ -137,6 +137,8 @@ echo ""
echo "=== Type-checking good files ==="
goods bench/typing/good --type-only
goods examples --type-only
goods examples/tptp --type-only
echo ""
echo "=== Type-checking theories ==="
......
......@@ -96,7 +96,7 @@ external prover if wanted. A major new feature is also the ability
to use Why programmatically, via a well-designed API.
\subsection*{Availability}
\subsection{Availability}
\why\ project page is \url{https://gforge.inria.fr/projects/why3}. The
last distribution is available, in source format, together with this
......@@ -109,7 +109,7 @@ See the file \texttt{INSTALL} for quick installation instructions, and
Section~\ref{sec:install} of this document for more detailed
instructions.
\subsection*{Contact}
\subsection{Contact}
There is a public mailing list for users' discussions:
\url{http://lists.gforge.inria.fr/mailman/listinfo/why3-club}.
......@@ -118,12 +118,12 @@ Report any bug to the \why\ Bug Tracking System:
\url{https://gforge.inria.fr/tracker/?atid=10293&group_id=2990&func=browse}.
\section*{Acknowledgements}
\subsection{Acknowledgements}
We gratefully thank the people who contributed to \why: Simon Cruanes,
Johannes Kanig, St\'ephane Lescuyer, Sim\~ao Melo de Sousa.
\section*{Release notes}
\subsection{Release notes}
\paragraph{Version 0.10}
Initial release.
......@@ -146,7 +146,7 @@ Initial release.
\tableofcontents
\input{intro.tex}
% \input{intro.tex}
\part{Tutorial}
......
......@@ -3,61 +3,50 @@ theory Agatha
type person = Agatha | Butler | Charles
logic hates(person, person)
logic richer(person, person)
logic lives(person)
logic killed(person, person)
axiom Lives1 : lives(Agatha)
axiom Lives2 : lives(Charles)
axiom Lives3 : lives(Butler)
logic hates person person
logic richer person person
logic lives person
logic killed person person
axiom Lives1 : lives Agatha
axiom Lives2 : lives Charles
axiom Lives3 : lives Butler
axiom NoOneLivesForever :
forall x:person.
lives(x) -> x = Agatha or x = Charles or x = Butler
lives x -> x = Agatha or x = Charles or x = Butler
axiom MURDER :
exists x:person.
lives(x) and killed(x, Agatha)
lives x and killed x Agatha
axiom Hate_and_killed :
forall p1:person. forall p2:person.
killed(p1, p2) -> hates(p1, p2)
forall p1 p2:person. killed p1 p2 -> hates p1 p2
axiom Killed_and_wealth :
forall p1:person. forall p2:person.
killed(p1, p2) -> not (richer(p1, p2))
forall p1 p2:person. killed p1 p2 -> not (richer p1 p2)
axiom Diff1 :
Agatha <> Butler
axiom Diff2 :
Agatha <> Charles
axiom Diff3 :
Charles <> Butler
lemma Diff1 : Agatha <> Butler
lemma Diff2 : Agatha <> Charles
lemma Diff3 : Charles <> Butler
axiom H1 :
forall x:person.
hates(Agatha, x) -> not (hates(Charles, x))
forall x:person. hates Agatha x -> not (hates Charles x)
axiom H2 :
forall x:person.
x <> Butler -> hates(Agatha, x)
forall x:person. x <> Butler -> hates Agatha x
axiom H3 :
forall x:person.
not (richer(x, Agatha)) -> hates(Butler, x)
forall x:person. not (richer x Agatha) -> hates Butler x
axiom H4 :
forall x:person.
hates(Agatha, x) -> hates(Butler, x)
forall x:person. hates Agatha x -> hates Butler x
axiom H5 :
forall x:person.
exists y:person.
not (hates(x,y))
forall x:person. exists y:person. not (hates x y)
goal Enigma:
killed(Agatha, Agatha)
goal Enigma: killed Agatha Agatha
end
......@@ -776,9 +776,9 @@ let rec reimport_any_goal parent gname t db_goal goal_obsolete =
let external_proofs = Db.external_proofs db_goal in
Db.Hprover.iter
(fun pid a ->
let p =
Util.Mstr.find (Db.prover_name pid) gconfig.provers
in
let pname = Db.prover_name pid in
try
let p = Util.Mstr.find pname gconfig.provers in
let s,t,o,edit = Db.status_and_time a in
if goal_obsolete && not o then Db.set_obsolete a;
let obsolete = goal_obsolete or o in
......@@ -795,6 +795,10 @@ let rec reimport_any_goal parent gname t db_goal goal_obsolete =
Helpers.add_external_proof_row ~obsolete ~edit goal p a s t
in
((* something TODO ?*))
with Not_found ->
eprintf
"Warning: prover %s appears in database but is not installed.@."
pname
)
external_proofs;
let transformations = Db.transformations db_goal 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