default

loading
details
attribute current value
name default
description no description
owning solver veriT
contents
#!/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

back to veriT