/export/starexec/sandbox/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE We consider the system theBenchmark. We are asked to determine termination of the following first-order TRS. 0 : [] --> o a : [] --> o c : [] --> o d : [] --> o div : [o * o] --> o div2 : [o * o * o] --> o divZeroError : [] --> o false : [] --> o if1 : [o * o * o * o * o * o] --> o if2 : [o * o * o * o * o] --> o ifPlus : [o * o * o * o] --> o inc : [o] --> o le : [o * o] --> o minus : [o * o] --> o plus : [o * o] --> o plusIter : [o * o * o] --> o s : [o] --> o true : [] --> o div(X, Y) => div2(X, Y, 0) div2(X, Y, Z) => if1(le(Y, 0), le(Y, X), X, Y, plus(Z, 0), inc(Z)) if1(true, X, Y, Z, U, V) => divZeroError if1(false, X, Y, Z, U, V) => if2(X, Y, Z, U, V) if2(true, X, Y, Z, U) => div2(minus(X, Y), Y, U) if2(false, X, Y, Z, U) => Z inc(0) => 0 inc(s(X)) => s(inc(X)) le(s(X), 0) => false le(0, X) => true le(s(X), s(Y)) => le(X, Y) minus(X, 0) => X minus(0, X) => 0 minus(s(X), s(Y)) => minus(X, Y) plus(X, Y) => plusIter(X, Y, 0) plusIter(X, Y, Z) => ifPlus(le(X, Z), X, Y, Z) ifPlus(true, X, Y, Z) => Y ifPlus(false, X, Y, Z) => plusIter(X, s(Y), s(Z)) a => c a => d