#!/usr/bin/env bash # Configuration script structure adapted from CVC4's configuration for SMTCOMP 2015 exec=./veriT problem="$1" logic=$(expr "$(grep -m1 '^[^;]*set-logic' "$problem")" : ' *(set-logic *\([A-Z_]*\) *) *$') function trywith { limit=$1; shift; result="$(ulimit -S -t "$limit";$exec --disable-banner --disable-print-success "$@" $problem 2>&1)" # if [[ ${result} ]]; then echo "$result"; fi case "$result" in sat|unsat) echo "$result"; # echo "solved with $@" exit 0;; esac } function finishwith { $exec --disable-banner --disable-print-success "$@" $problem 2>&1 } ufs_thresholds="--inst-sorts-threshold=100000 --ematch-exp=10000000 --ccfv-index=100000 --ccfv-index-full=1000" del="--inst-deletion --index-SAT-triggers" del_loops="--inst-deletion --index-SAT-triggers --inst-deletion-loops --inst-deletion-track-vars" ccfv_brckt_limits="--ccfv-branches=100000 --CIs-bound=1" new_triggers_multi="--triggers-new --triggers-sel-rm-specific" case "$logic" in LIA|LRA) trywith 180 --CIs-off --index-fresh-sorts trywith 180 --CIs-off trywith 120 $del finishwith --CIs-off --index-fresh-sorts $ufs_thresholds ;; UF|UFIDL|UFLIA|UFLRA) # fast and broad (60s) trywith 6 $new_triggers_multi --triggers-restrict-combine $ufs_thresholds trywith 6 $new_triggers_multi --triggers-multi-off $ufs_thresholds trywith 6 $new_triggers_multi trywith 6 $new_triggers_multi --triggers-restrict-combine $del $ufs_thresholds trywith 6 $ufs_thresholds trywith 6 --CIs-off $new_triggers_multi --triggers-restrict-combine $ufs_thresholds trywith 6 --index-SIG $ufs_thresholds trywith 6 $new_triggers_multi --triggers-multi-off $del $ufs_thresholds trywith 6 $new_triggers_multi --triggers-multi-off $del_loops $del $ufs_thresholds trywith 6 $new_triggers_multi --triggers-restrict-combine $del_loops $del $ufs_thresholds # more time for this guy (270s) trywith 270 $new_triggers_multi --triggers-restrict-combine $ufs_thresholds # differnt index (180s) trywith 60 --index-SIG $new_triggers_multi --triggers-restrict-combine $ufs_thresholds trywith 60 --index-SIG $new_triggers_multi --triggers-multi-off $ufs_thresholds trywith 60 --index-SIG $new_triggers_multi # different coverages (270s) trywith 30 --ccfv-breadth $del $ufs_thresholds trywith 30 --ccfv-breadth $del_loops $del $ufs_thresholds trywith 30 --ccfv-breadth $del $ufs_thresholds trywith 30 --ccfv-breadth --index-fresh-sorts $del $ufs_thresholds trywith 30 --ccfv-breadth $ufs_thresholds trywith 30 $del --ccfv_breadth $ufs_thresholds trywith 30 $del $ccfv_brckt_limits $ufs_thresholds trywith 30 $del_loops $del $ccfv_brckt_limits $ufs_thresholds trywith 30 --CIs-off $ufs_thresholds # more time for betters (1200s) trywith 120 $new_triggers_multi --triggers-restrict-combine $ufs_thresholds trywith 120 $new_triggers_multi --triggers-multi-off $ufs_thresholds trywith 120 $new_triggers_multi trywith 120 $new_triggers_multi --triggers-restrict-combine $del $ufs_thresholds trywith 120 $ufs_thresholds trywith 120 --CIs-off $new_triggers_multi --triggers-restrict-combine $ufs_thresholds trywith 120 --index-SIG $ufs_thresholds trywith 120 $new_triggers_multi --triggers-multi-off $del $ufs_thresholds trywith 120 $new_triggers_multi --triggers-multi-off $del_loops $del $ufs_thresholds trywith 120 $new_triggers_multi --triggers-restrict-combine $del_loops $del $ufs_thresholds # try best with bigger thresholds finishwith $new_triggers_multi --triggers-restrict-combine --ccfv-breadth --inst-sorts-threshold=1000000 --ematch-exp=10000000 --ccfv-index=100000 --ccfv-index-full=10000 ;; ALIA|AUFLIA|AUFLIRA) # as above but without thresholds # fast and broad (60s) trywith 6 $new_triggers_multi --triggers-restrict-combine trywith 6 $new_triggers_multi --triggers-multi-off trywith 6 $new_triggers_multi trywith 6 $new_triggers_multi --triggers-restrict-combine $del trywith 6 trywith 6 --CIs-off $new_triggers_multi --triggers-restrict-combine trywith 6 --index-SIG trywith 6 $new_triggers_multi --triggers-multi-off $del trywith 6 $new_triggers_multi --triggers-multi-off $del_loops $del trywith 6 $new_triggers_multi --triggers-restrict-combine $del_loops $del # different coverages (270s) trywith 30 --ccfv-breadth $del trywith 30 --ccfv-breadth $del_loops $del trywith 30 --ccfv-breadth --index-fresh-sorts $del trywith 30 --ccfv-breadth trywith 30 $del --ccfv_breadth trywith 30 $del $ccfv_brckt_limits trywith 30 $del_loops $del $ccfv_brckt_limits trywith 30 --CIs-off # more time for betters (1200s) trywith 120 $new_triggers_multi --triggers-restrict-combine trywith 120 $new_triggers_multi --triggers-multi-off trywith 120 $new_triggers_multi trywith 120 $new_triggers_multi --triggers-restrict-combine $del trywith 120 trywith 120 --CIs-off $new_triggers_multi --triggers-restrict-combine trywith 120 --index-SIG trywith 120 $new_triggers_multi --triggers-multi-off $del trywith 120 $new_triggers_multi --triggers-multi-off $del_loops $del trywith 120 $new_triggers_multi --triggers-restrict-combine $del_loops $del # try best with bigger thresholds finishwith $new_triggers_multi --triggers-restrict-combine --ccfv-breadth --inst-sorts-threshold=1000000 --ematch-exp=10000000 --ccfv-index=100000 --ccfv-index-full=10000 ;; *) finishwith ;; esac