static const char lang_help[] = "\
Languages currently supported as arguments to the -L / --lang option:\n\
- auto attempt to automatically determine the input language\n\
- pl | cvc4 CVC4 presentation language\n\
- smt | smtlib SMT-LIB format\n\
+ auto attempt to automatically determine the input language\n\
+ pl | cvc4 CVC4 presentation language\n\
+ smt | smtlib SMT-LIB format 1.2\n\
+ smt2 | smtlib2 SMT-LIB format 2.0\n\
";
/**
if(/*!inputFromStdin && */options.lang == parser::LANG_AUTO) {
const char* filename = argv[firstArgIndex];
unsigned len = strlen(filename);
- if(len >= 4 && !strcmp(".smt", filename + len - 4)) {
+ if(len >= 5 && !strcmp(".smt2", filename + len - 5)) {
+ options.lang = parser::LANG_SMTLIB_V2;
+ } else if(len >= 4 && !strcmp(".smt", filename + len - 4)) {
options.lang = parser::LANG_SMTLIB;
} else if(( len >= 4 && !strcmp(".cvc", filename + len - 4) )
|| ( len >= 5 && !strcmp(".cvc4", filename + len - 5) )) {
TESTS_ENVIRONMENT = @srcdir@/../run_regression @top_builddir@/src/main/cvc4
TESTS = \
- error.cvc \
- boolean-prec.cvc \
- distinct.smt \
- flet.smt \
- flet2.smt \
+ error.cvc \
+ boolean-prec.cvc \
+ distinct.smt \
+ flet.smt \
+ flet2.smt \
let.smt \
let2.smt \
simple2.smt \
simple.smt \
simple-uf.smt \
- bug32.cvc \
+ bug32.cvc \
hole6.cvc \
logops.01.cvc \
logops.02.cvc \
--- /dev/null
+(set-info :source | SMT-COMP'06 organizers |)
+(set-info :smt-lib-version 2.0)
+(set-info :category "check")
+(set-info :status unsat)
+(set-logic AUFLIA)
+(set-info :notes |This benchmark is designed to check if the DP supports bignumbers.| )
+(set-info :difficulty 0.000)
+(declare-fun f (Int) Int)
+(assert (= (f 0) 1))
+(assert (forall (?x Int) (=> (> ?x 0) (= (f ?x) (* (- 1000) (f (- ?x 1)))))))
+(assert (< (f 20) 0))
+(check-sat)
+(exit)
#
# usage:
#
-# run_regression cvc4-binary [ benchmark.cvc | benchmark.smt ]
+# run_regression cvc4-binary [ benchmark.cvc | benchmark.smt | benchmark.smt2 ]
#
# Runs benchmark and checks for correct exit status and output.
#
prog=`basename "$0"`
if [ $# != 2 ]; then
- echo "usage: $prog cvc4-binary [ benchmark.cvc | benchmark.smt ]" >&2
+ echo "usage: $prog cvc4-binary [ benchmark.cvc | benchmark.smt | benchmark.smt2 ]" >&2
exit 1
fi
else
error "cannot determine status of \`$benchmark'"
fi
+elif expr "$benchmark" : '.*\.smt2$' &>/dev/null; then
+ if grep '^ *(set-info *:status *sat' "$benchmark" &>/dev/null; then
+ expected_output=SAT
+ expected_exit_status=10
+ elif grep '^ *(set-info *:status *unsat' "$benchmark" &>/dev/null; then
+ expected_output=UNSAT
+ expected_exit_status=20
+ else
+ error "cannot determine status of \`$benchmark'"
+ fi
elif expr "$benchmark" : '.*\.cvc$' &>/dev/null; then
expected_output=`grep '^% EXPECT: ' "$benchmark" | sed 's,^% EXPECT: ,,'`
expected_error=`grep '^% EXPECT-ERROR: ' "$benchmark" | sed 's,^% EXPECT-ERROR: ,,'`
error "cannot determine expected exit status of \`$benchmark': please use \`% EXIT:' gesture"
fi
else
- error "benchmark \`$benchmark' must be *.cvc or *.smt"
+ error "benchmark \`$benchmark' must be *.cvc or *.smt or *.smt2"
fi
expoutfile=`mktemp -t cvc4_expect_stdout.XXXXXXXXXX`