/export/starexec/sandbox2/solver/bin/starexec_run_FirstOrder /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/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 cons : [o * o] --> o double : [o] --> o droplast : [o] --> o error : [] --> o false : [] --> o if : [o * o * o * o] --> o ifmap : [o * o * o] --> o isempty : [o] --> o last : [o] --> o le : [o * o] --> o log : [o] --> o logError : [] --> o loop : [o * o * o] --> o mapIter : [o * o] --> o maplog : [o] --> o nil : [] --> o s : [o] --> o true : [] --> o le(s(X), 0) => false le(0, X) => true le(s(X), s(Y)) => le(X, Y) double(0) => 0 double(s(X)) => s(s(double(X))) log(0) => logError log(s(X)) => loop(s(X), s(0), 0) loop(X, s(Y), Z) => if(le(X, s(Y)), X, s(Y), Z) if(true, X, Y, Z) => Z if(false, X, Y, Z) => loop(X, double(Y), s(Z)) maplog(X) => mapIter(X, nil) mapIter(X, Y) => ifmap(isempty(X), X, Y) ifmap(true, X, Y) => Y ifmap(false, X, Y) => mapIter(droplast(X), cons(log(last(X)), Y)) isempty(nil) => true isempty(cons(X, Y)) => false last(nil) => error last(cons(X, nil)) => X last(cons(X, cons(Y, Z))) => last(cons(Y, Z)) droplast(nil) => nil droplast(cons(X, nil)) => nil droplast(cons(X, cons(Y, Z))) => cons(X, droplast(cons(Y, Z))) a => b a => c