Skip to content
Snippets Groups Projects
Commit 1dac6d30 authored by Michele Alberti's avatar Michele Alberti Committed by Julien Girard-Satabin
Browse files

[SAVer] Driver and config ready

parent df30ac92
No related branches found
No related tags found
No related merge requests found
...@@ -2,4 +2,14 @@ ...@@ -2,4 +2,14 @@
## How to add a solver ## How to add a solver
Make sure the solver is added to your systems for tests. Make sure the solver is added to your systems for tests.
1. Create a `new_solver.drv` in `config/drivers` 1. Create a `new_solver.drv` in `config/drivers/`.
A driver is a serie of whyml modules describing the theories
the solver will use during its call by why3.
1. Add a new field inside of `config/caisar-detection-data.conf`.
Here, you only need to define the name of the solver's
executable as well as the supported versions for CAISAR.
Now, the solver will be recognized by CAISAR. However, in
order to exploit it, you should write a printer of its
output in `src/printers/`. TODO
...@@ -31,11 +31,11 @@ driver = "caisar_drivers/pyrat.drv" ...@@ -31,11 +31,11 @@ driver = "caisar_drivers/pyrat.drv"
use_at_auto_level = 1 use_at_auto_level = 1
[ATP saver] [ATP saver]
name = "SAVER" name = "SAVer"
exec = "saver" exec = "saver"
version_switch = "--version" version_switch = "2>&1 | grep Usage"
version_regexp = "PyRAT \\([0-9.]+\\)" version_regexp = "\\(\\)"
version_ok = "1.1" version_ok = ""
command = "%e --model_path %{nnet-onnx} --property_path %f" command = "%e %{svm} %{data}"
driver = "caisar_drivers/pyrat.drv" driver = "caisar_drivers/saver.drv"
use_at_auto_level = 1 use_at_auto_level = 1
...@@ -15,9 +15,13 @@ Test autodetect ...@@ -15,9 +15,13 @@ Test autodetect
$ bin/Marabou --version $ bin/Marabou --version
1.0.+ 1.0.+
$ bin/saver --version
1.0
$ PATH=$(pwd)/bin:$PATH $ PATH=$(pwd)/bin:$PATH
$ caisar config -d $ caisar config -d
[caisar] Alt-Ergo 2.4.0 [caisar] Alt-Ergo 2.4.0
Marabou 1.0.+ Marabou 1.0.+
PyRAT 1.1 PyRAT 1.1
SAVER 1.0
#!/bin/sh
case $1 in
--version)
echo "1.0"
;;
*)
echo "NN: $1"
echo "Goal:"
cat $2
echo "Unknown"
esac
...@@ -5,4 +5,5 @@ ...@@ -5,4 +5,5 @@
TestNetworkONNX.onnx TestNetworkONNX.onnx
bin/pyrat.py bin/pyrat.py
bin/Marabou bin/Marabou
bin/saver
)) ))
...@@ -38,11 +38,13 @@ Test verify ...@@ -38,11 +38,13 @@ Test verify
<autodetect>Generating strategies: <autodetect>Generating strategies:
<autodetect>Run: (Marabou --version) > $TMPFILE 2>&1 <autodetect>Run: (Marabou --version) > $TMPFILE 2>&1
<autodetect>Run: (alt-ergo --version) > $TMPFILE 2>&1 <autodetect>Run: (alt-ergo --version) > $TMPFILE 2>&1
<autodetect>Run: (saver --version) > $TMPFILE 2>&1
<autodetect>Run: (pyrat.py --version) > $TMPFILE 2>&1 <autodetect>Run: (pyrat.py --version) > $TMPFILE 2>&1
<autodetect>Found prover Alt-Ergo version 2.4.0, OK. <autodetect>Found prover Alt-Ergo version 2.4.0, OK.
<autodetect>Found prover Marabou version 1.0.+, OK. <autodetect>Found prover Marabou version 1.0.+, OK.
<autodetect>Found prover PyRAT version 1.1, OK. <autodetect>Found prover PyRAT version 1.1, OK.
<autodetect>3 prover(s) added <autodetect>Found prover SAVER version 1.0, OK.
<autodetect>4 prover(s) added
Goal G: Unknown Goal G: Unknown
() ()
Goal H: Unknown Goal H: Unknown
......
...@@ -4,7 +4,7 @@ Test verify ...@@ -4,7 +4,7 @@ Test verify
> echo "2.4.0" > echo "2.4.0"
> EOF > EOF
$ chmod u+x bin/alt-ergo bin/pyrat.py bin/Marabou $ chmod u+x bin/alt-ergo bin/pyrat.py bin/Marabou bin/saver
$ bin/alt-ergo $ bin/alt-ergo
2.4.0 2.4.0
...@@ -15,6 +15,9 @@ Test verify ...@@ -15,6 +15,9 @@ Test verify
$ bin/Marabou --version $ bin/Marabou --version
1.0.+ 1.0.+
$ bin/saver --version
1.0
$ PATH=$(pwd)/bin:$PATH $ PATH=$(pwd)/bin:$PATH
$ caisar verify -L . --format whyml --prover=PyRAT - 2>&1 <<EOF | sed 's/\/tmp\/[a-z0-9_./]*/$TMPFILE/' $ caisar verify -L . --format whyml --prover=PyRAT - 2>&1 <<EOF | sed 's/\/tmp\/[a-z0-9_./]*/$TMPFILE/'
...@@ -38,11 +41,13 @@ Test verify ...@@ -38,11 +41,13 @@ Test verify
<autodetect>Generating strategies: <autodetect>Generating strategies:
<autodetect>Run: (Marabou --version) > $TMPFILE 2>&1 <autodetect>Run: (Marabou --version) > $TMPFILE 2>&1
<autodetect>Run: (alt-ergo --version) > $TMPFILE 2>&1 <autodetect>Run: (alt-ergo --version) > $TMPFILE 2>&1
<autodetect>Run: (saver --version) > $TMPFILE 2>&1
<autodetect>Run: (pyrat.py --version) > $TMPFILE 2>&1 <autodetect>Run: (pyrat.py --version) > $TMPFILE 2>&1
<autodetect>Found prover Alt-Ergo version 2.4.0, OK. <autodetect>Found prover Alt-Ergo version 2.4.0, OK.
<autodetect>Found prover Marabou version 1.0.+, OK. <autodetect>Found prover Marabou version 1.0.+, OK.
<autodetect>Found prover PyRAT version 1.1, OK. <autodetect>Found prover PyRAT version 1.1, OK.
<autodetect>3 prover(s) added <autodetect>Found prover SAVER version 1.0, OK.
<autodetect>4 prover(s) added
Goal G: Unknown Goal G: Unknown
() ()
Goal H: Unknown Goal H: Unknown
......
...@@ -33,10 +33,12 @@ Test verify ...@@ -33,10 +33,12 @@ Test verify
<autodetect>Generating strategies: <autodetect>Generating strategies:
<autodetect>Run: (Marabou --version) > $TMPFILE 2>&1 <autodetect>Run: (Marabou --version) > $TMPFILE 2>&1
<autodetect>Run: (alt-ergo --version) > $TMPFILE 2>&1 <autodetect>Run: (alt-ergo --version) > $TMPFILE 2>&1
<autodetect>Run: (saver --version) > $TMPFILE 2>&1
<autodetect>Run: (pyrat.py --version) > $TMPFILE 2>&1 <autodetect>Run: (pyrat.py --version) > $TMPFILE 2>&1
<autodetect>Found prover Alt-Ergo version 2.4.0, OK. <autodetect>Found prover Alt-Ergo version 2.4.0, OK.
<autodetect>Found prover Marabou version 1.0.+, OK. <autodetect>Found prover Marabou version 1.0.+, OK.
<autodetect>Found prover PyRAT version 1.1, OK. <autodetect>Found prover PyRAT version 1.1, OK.
<autodetect>3 prover(s) added <autodetect>Found prover SAVER version 1.0, OK.
<autodetect>4 prover(s) added
Goal G: Unknown Goal G: Unknown
() ()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment