/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 cons : [o * o] --> o d : [] --> o error : [] --> o false : [] --> o ge : [o * o] --> o gen : [o * o * o] --> o generate : [o * o] --> o head : [o] --> o if : [o * o * o * o] --> o ifsum : [o * o * o * o] --> o ifsum2 : [o * o * o] --> o isNil : [o] --> o isZero : [o] --> o nil : [] --> o p : [o] --> o s : [o] --> o sum : [o] --> o sum2 : [o * o] --> o tail : [o] --> o times : [o * o] --> o true : [] --> o times(X, Y) => sum(generate(X, Y)) generate(X, Y) => gen(X, Y, 0) gen(X, Y, Z) => if(ge(Z, X), X, Y, Z) if(true, X, Y, Z) => nil if(false, X, Y, Z) => cons(Y, gen(X, Y, s(Z))) sum(X) => sum2(X, 0) sum2(X, Y) => ifsum(isNil(X), isZero(head(X)), X, Y) ifsum(true, X, Y, Z) => Z ifsum(false, X, Y, Z) => ifsum2(X, Y, Z) ifsum2(true, X, Y) => sum2(tail(X), Y) ifsum2(false, X, Y) => sum2(cons(p(head(X)), tail(X)), s(Y)) isNil(nil) => true isNil(cons(X, Y)) => false tail(nil) => nil tail(cons(X, Y)) => Y head(cons(X, Y)) => X head(nil) => error isZero(0) => true isZero(s(0)) => false isZero(s(s(X))) => isZero(s(X)) p(0) => s(s(0)) p(s(0)) => 0 p(s(s(X))) => s(p(s(X))) ge(X, 0) => true ge(0, s(X)) => false ge(s(X), s(Y)) => ge(X, Y) a => c a => d