Skip to content

Commit 0dc98e1

Browse files
committed
Add postprocessor for unsat core track 2017.
1 parent 264a1d1 commit 0dc98e1

File tree

6 files changed

+17
-11
lines changed

6 files changed

+17
-11
lines changed

unsat-core-track/process

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#!/bin/bash
22

33
# Matthias Heizmann ([email protected])
4-
# SMT-COMP 2016 post-processor for the unsat-core track
4+
# SMT-COMP 2017 post-processor for the Unsat-core Track
55

6-
# This postprocessor contains a copy of z3-4.4.1 which is located in the
7-
# validation_solvers/z3 subfolder.
6+
# This postprocessor contains a copy several SMT solvers that are located in
7+
# the validation_solvers subfolder
88

99
# This bash script mainly does the following
1010
# 1. Examine if the check-sat result of the solver was "sat".
@@ -15,16 +15,19 @@
1515
# 3. Write the "unsat-core-validation-script.smt2" SMT script. This script
1616
# is a copy of the input which contains only the assert commands whose
1717
# corresponding named terms were in the unsat-core returned by the solver.
18-
# 4. Use another solver to validate the unsat core. We use this validation
19-
# solver to check the unsat-core-validation-script.smt2. We consider
20-
# the unsat-core valid if the validation solver did not return "sat"
18+
# 4. Use other solvers to validate the unsat core. We use the validation
19+
# solvers to check the unsat-core-validation-script.smt2. We consider
20+
# the unsat-core valid if none of the validation solvers returns "sat"
2121
# within its timeout.
22+
# We note that this slightly deviates from the SMT-COMP rules, hence in
23+
# case of an erroneous result and ambiguous validation results a manual
24+
# postprocessing of the final verdict might be neccessary.
2225

2326
# $1: solver output
2427
# $2: path to pre-processed benchmark
2528

2629
# timeout in seconds for each validating solver
27-
VALIDATION_TIMOUT=120
30+
VALIDATION_TIMOUT=300
2831

2932
set -u
3033
# do not use 'set -e' since the scrambler my fail while trying to parse the unsat core
@@ -78,12 +81,14 @@ if [ "$CHECK_SAT_RESPONSE" == "unsat" ]; then
7881
# use validation solvers to check validation script
7982
VALIDATION_SOLVERS[1]="cvc4"
8083
VALIDATION_SOLVERS[2]="mathsat"
81-
VALIDATION_SOLVERS[3]="z3"
82-
VALIDATION_SOLVER_COMMANDS[1]="./validation_solvers/cvc4/cvc4-2016-05-21-x86_64-linux-opt"
84+
VALIDATION_SOLVERS[3]="vampire"
85+
VALIDATION_SOLVERS[4]="z3"
86+
VALIDATION_SOLVER_COMMANDS[1]="./validation_solvers/cvc4/cvc4"
8387
VALIDATION_SOLVER_COMMANDS[2]="./validation_solvers/mathsat/bin/mathsat"
84-
VALIDATION_SOLVER_COMMANDS[3]="./validation_solvers/z3/z3 -smt2"
88+
VALIDATION_SOLVER_COMMANDS[3]="./validation_solvers/vampire/vampire -t 2000s -m 60000 --mode smtcomp --cores 4"
89+
VALIDATION_SOLVER_COMMANDS[4]="./validation_solvers/z3/z3 -smt2"
8590
UNSAT_CORE_VALIDATED="true"
86-
for i in {1..3}
91+
for i in {1..4}
8792
do
8893
TIME_START=`date +%s`
8994
timeout -k 10 $VALIDATION_TIMOUT ${VALIDATION_SOLVER_COMMANDS[$i]} ./unsat-core-validation-script.smt2 &> validationOutput.txt
@@ -100,6 +105,7 @@ if [ "$CHECK_SAT_RESPONSE" == "unsat" ]; then
100105
if [ "$VALIDATION_CHECK_SAT_RESULT" == "sat" ] || [ "$UNSAT_CORE_VALIDATED" == "false" ]; then
101106
UNSAT_CORE_VALIDATED="false"
102107
RESULT_IS_ERRONEOUS="1"
108+
REDUCTION="0"
103109
fi
104110
done
105111
echo "unsat-core-validated=$UNSAT_CORE_VALIDATED"

unsat-core-track/scrambler.tar.xz

17.5 KB
Binary file not shown.
9.13 MB
Binary file not shown.
Binary file not shown.
Binary file not shown.
302 KB
Binary file not shown.

0 commit comments

Comments
 (0)