#!/bin/bash # # Use STP to create CNF from SMT input, and use Cryptominisat to solve it SOLVERDIR="$(dirname "${BASH_SOURCE[0]}" )" # clean last call rm -f output_0.cnf "$SOLVERDIR"/stp --SMTLIB2 --output-CNF --exit-after-CNF "$1" # In case a file was created, call the SAT solver if [ -f output_0.cnf ] then result=`$SOLVERDIR/cryptominisat5 --verb 0 --printsol 0 output_0.cnf 2>&1` if [[ "$result" == *"s SATISFIABLE"* ]]; then echo "sat" elif [[ "$result" == *"s UNSATISFIABLE"* ]]; then echo "unsat" fi fi