#!/bin/bash cvc4=./cvc4 bench="$1" function runl { limit=$1; shift; ulimit -S -t "$limit";$cvc4 --lang=sygus2 --no-checking --no-interactive --default-dag-thresh=0 "$@" $bench 2>/dev/null } function trywith { sol=$(runl $@) status=$? if [ $status -ne 134 ]; then echo $sol |& (read result w1 w2; case "$result" in unsat) case "$w1" in "(define-fun") echo "$w1 $w2";cat;exit 0;; esac; exit 1;; esac; exit 1) if [ ${PIPESTATUS[1]} -eq 0 ]; then exit 0; fi fi } function finishwith { $cvc4 --lang=sygus2 --no-checking --no-interactive --default-dag-thresh=0 "$@" $bench 2>/dev/null | (read result w1; case "$result" in unsat) echo "$w1";cat;exit 0;; esac) } trywith 30 --sygus-unif-boolean-heuristic-dt --sygus-active-gen=var-agnostic --sygus-add-const-grammar --decision=justification trywith 10 --sygus-active-gen=none --sygus-repair-const finishwith --sygus-active-gen=none