Commit efb51e7d authored by Guillaume Melquiond's avatar Guillaume Melquiond

Merge theories and modules into stdlib (fix issue #62).

parent 26335a9a
......@@ -148,8 +148,7 @@ why3.conf
/share/emacs/semantic.cache
/share/Makefile.config
/share/drivers
/share/modules
/share/theories
/share/stdlib
# /src/
/src/config.sh
......@@ -301,15 +300,6 @@ pvsbin/
/examples/prover/bench1
/examples/prover/bench2
# modules
/modules/string/
/modules/stack/
/modules/queue/
/modules/pqueue/
/modules/mach/array/
/modules/mach/int/
/modules/python/
# Try Why3
/src/trywhy3/trywhy3.byte
/src/trywhy3/trywhy3.js
......
This diff is collapsed.
......@@ -26,7 +26,7 @@ The documentation (a tutorial and a reference manual) is in the file
[doc/manual.pdf](http://why3.lri.fr/manual.pdf) or online at
http://why3.lri.fr/doc/.
Various examples can be found in the subdirectories [theories/](theories)
Various examples can be found in the subdirectories [stdlib/](stdlib)
and [examples/](examples).
Mailing list (Why3 Club):
......
#!/bin/bash
# auto bench for why
......@@ -10,17 +9,20 @@
suffix=$1
# TODO: remove the hack about int.why once it has become builtin
goods () {
pgm="bin/why3prove$suffix"
ERROR=
rm -f bench_errors
for f in $1/*.[wm][hl][yw] ; do
printf " $f... "
opts="$2"
if test $f = stdlib/int.why; then opts="$2 --type-only"; fi
# running Why
if ! $pgm $2 $f > /dev/null 2> bench_error; then
if ! $pgm $opts $f > /dev/null 2> bench_error; then
echo "FAILED!"
# echo "env: WHY3DATA='$WHY3DATA'"
echo "invocation: $pgm $2 $f" | tee -a bench_errors
echo "invocation: $pgm $opts $f" | tee -a bench_errors
cat bench_error | tee -a bench_errors
ERROR=yes
elif test -s bench_error; then
......@@ -174,13 +176,9 @@ list_stuff () {
fi
}
echo "=== Checking theories ==="
goods theories --type-only # FIXME remove --type-only
echo ""
echo "=== Checking modules ==="
goods modules
goods modules/mach
echo "=== Checking stdlib ==="
goods stdlib
goods stdlib/mach
echo ""
echo "=== Checking drivers ==="
......
[main ]
loadpath = "../../share/theories"
[main]
loadpath = "../../share/stdlib"
magic = 5
memlimit = 2048
running_provers_max = 7
......
......@@ -8,7 +8,7 @@
<prover id="3" name="Coq" version="8.6.1" timelimit="6" steplimit="0" memlimit="1000"/>
<prover id="4" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="6" name="Z3" version="4.5.0" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../../../modules/array.mlw" proved="true">
<file name="../../../stdlib/array.mlw" proved="true">
<theory name="Array" proved="true" sum="d12f98c64e888261d80af67de4830724">
<goal name="VC array" expl="VC for array" proved="true">
<proof prover="2"><result status="valid" time="0.00" steps="1"/></proof>
......
......@@ -4,7 +4,7 @@
<why3session shape_version="4">
<prover id="0" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="0.99.1" timelimit="6" steplimit="0" memlimit="1000"/>
<file name="../../../theories/bintree.why" expanded="true">
<file name="../../../stdlib/bintree.why" expanded="true">
<theory name="Tree" sum="c05a159c0fca07eac9e3cabdb81061c8">
<goal name="VC is_empty" expl="VC for is_empty">
<transf name="split_goal_wp">
......
......@@ -7,7 +7,7 @@
<prover id="3" name="Spass" version="3.7" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="4" name="Eprover" version="1.8-001" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="6" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../../../theories/list.why" expanded="true">
<file name="../../../stdlib/list.why" expanded="true">
<theory name="List" sum="0837e0e504ae2d2a2dc07ff388fab3e5">
<goal name="VC is_nil" expl="VC for is_nil">
<proof prover="6"><result status="valid" time="0.00" steps="7"/></proof>
......
......@@ -42,8 +42,7 @@ let why3_regexp_of_string s = (* define a regexp in why3 *)
(* lib and shared dirs *)
let default_loadpath =
[ Filename.concat Config.datadir "theories";
Filename.concat Config.datadir "modules"; ]
[ Filename.concat Config.datadir "stdlib" ]
let default_conf_file =
match Config.localdir with
......@@ -184,7 +183,7 @@ let set_strategies rc strategies =
type main = {
libdir : string; (* "/usr/local/lib/why/" *)
datadir : string; (* "/usr/local/share/why/" *)
loadpath : string list; (* "/usr/local/lib/why/theories" *)
loadpath : string list; (* "/usr/local/lib/why/stdlib" *)
timelimit : int;
(* default prover time limit in seconds (0 unlimited) *)
memlimit : int;
......
[main]
cntexample = false
loadpath = "/theories"
loadpath = "/modules"
loadpath = "/stdlib"
magic = 14
memlimit = 1000
running_provers_max = 2
......
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