/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 b : [] --> o c : [] --> o div : [o * o * o] --> o divisible : [o * o] --> o false : [] --> o ge : [o * o] --> o if : [o * o * o * o * o] --> o if2 : [o * o * o * o * o] --> o ifTimes : [o * o * o] --> o lcm : [o * o] --> o lcmIter : [o * o * o * o] --> o or : [o * o] --> o p : [o] --> o plus : [o * o] --> o s : [o] --> o times : [o * o] --> o true : [] --> o lcm(X, Y) => lcmIter(X, Y, 0, times(X, Y)) lcmIter(X, Y, Z, U) => if(or(ge(0, X), ge(Z, U)), X, Y, Z, U) if(true, X, Y, Z, U) => Z if(false, X, Y, Z, U) => if2(divisible(Z, Y), X, Y, Z, U) if2(true, X, Y, Z, U) => Z if2(false, X, Y, Z, U) => lcmIter(X, Y, plus(X, Z), U) plus(0, X) => X plus(s(X), Y) => s(plus(X, Y)) times(X, Y) => ifTimes(ge(0, X), X, Y) ifTimes(true, X, Y) => 0 ifTimes(false, X, Y) => plus(Y, times(Y, p(X))) p(s(X)) => X p(0) => s(s(0)) ge(X, 0) => true ge(0, s(X)) => false ge(s(X), s(Y)) => ge(X, Y) or(true, X) => true or(false, X) => X divisible(0, s(X)) => true divisible(s(X), s(Y)) => div(s(X), s(Y), s(Y)) div(X, Y, 0) => divisible(X, Y) div(0, X, s(Y)) => false div(s(X), Y, s(Z)) => div(X, Y, Z) a => b a => c