#!/bin/bash

# Wrapper script for LP2ACYC + ACYC2BV + BOOLECTOR

if test $# -ne 3
then
  echo "The script $0 must be invoked with three parameters!"
  exit 128
fi

trap ":" 24 15

BIN=`dirname $0`
TMP=${MAIN%%/bin}/tmp

symfile=$TMP/$$-symbols.sm
outfile=$TMP/$$-output.txt

gringo-aspcomp2014 --foobar="$3" 2>/dev/null \
| $BIN/lpstrip-1.8 2>/dev/null \
| $BIN/lpcat-1.25 -s=$symfile 2>/dev/null \
| $BIN/lpshift-1.2 2>/dev/null \
| $BIN/lp2normal2-1.7 -k 2>/dev/null \
| $BIN/lp2acyc-1.12 2>/dev/null \
| $BIN/acyc2solver-1.5 --bv 2>/dev/null \
| fgrep -v get-model \
| $BIN/boolector-1.6.0 --smt2 -m 2>/dev/null >$outfile

declare -a rvals=("${PIPESTATUS[@]}")

if test ${rvals[0]} -ne 0
then
  echo "Grounding error!"
  exit 128
fi

for i in 1 2 3 4 5 6
do
  if test ${rvals[$i]} -ne 0
  then
    echo "UNKNOWN"
    exit 1
  fi
done

$BIN/judge $symfile $outfile ${rvals[8]}
rval=$?

exit $rval
