/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 app : [o * o] --> o cons : [o * o] --> o empty : [o] --> o f : [o * o] --> o false : [] --> o fstsplit : [o * o] --> o head : [o] --> o if!62201 : [o * o * o * o * o * o * o] --> o if!62202 : [o * o * o * o * o * o * o] --> o if!62203 : [o * o * o * o * o * o * o] --> o if!62204 : [o * o * o * o * o * o * o] --> o if!62205 : [o * o * o * o * o * o * o] --> o if!62206 : [o * o * o * o * o * o * o] --> o if!62207 : [o * o * o * o * o * o * o] --> o if!62208 : [o * o * o * o * o * o * o] --> o if!62209 : [o * o * o * o * o * o * o] --> o length : [o] --> o leq : [o * o] --> o map!6220f : [o * o] --> o nil : [] --> o ring : [o * o * o * o * o * o] --> o s : [o] --> o sndsplit : [o * o] --> o tail : [o] --> o three : [] --> o true : [] --> o two : [] --> o fstsplit(0, X) => nil fstsplit(s(X), nil) => nil fstsplit(s(X), cons(Y, Z)) => cons(Y, fstsplit(X, Z)) sndsplit(0, X) => X sndsplit(s(X), nil) => nil sndsplit(s(X), cons(Y, Z)) => sndsplit(X, Z) empty(nil) => true empty(cons(X, Y)) => false leq(0, X) => true leq(s(X), 0) => false leq(s(X), s(Y)) => leq(X, Y) length(nil) => 0 length(cons(X, Y)) => s(length(Y)) app(nil, X) => X app(cons(X, Y), Z) => cons(X, app(Y, Z)) map!6220f(X, nil) => nil map!6220f(X, cons(Y, Z)) => app(f(X, Y), map!6220f(X, Z)) head(cons(X, Y)) => X tail(cons(X, Y)) => Y ring(X, Y, Z, U, V, W) => if!62201(X, Y, Z, U, V, W, empty(fstsplit(W, X))) if!62201(X, Y, Z, U, V, W, false) => ring(sndsplit(W, X), cons(fstsplit(W, X), Y), Z, U, V, W) ring(X, Y, Z, U, V, W) => if!62202(X, Y, Z, U, V, W, leq(W, length(Z))) if!62202(X, Y, Z, U, V, W, true) => if!62203(X, Y, Z, U, V, W, empty(fstsplit(W, Z))) if!62203(X, Y, Z, U, V, W, false) => ring(X, Y, sndsplit(W, Z), cons(fstsplit(W, Z), U), V, W) if!62202(X, Y, Z, U, V, W, false) => if!62204(X, Y, Z, U, V, W, empty(fstsplit(W, app(map!6220f(two, head(Y)), Z)))) if!62204(X, Y, Z, U, V, W, false) => ring(X, tail(Y), sndsplit(W, app(map!6220f(two, head(Y)), Z)), cons(fstsplit(W, app(map!6220f(two, head(Y)), Z)), U), V, W) ring(X, Y, Z, U, V, W) => if!62205(X, Y, Z, U, V, W, empty(map!6220f(two, head(Y)))) if!62205(X, Y, Z, U, V, W, true) => ring(X, tail(Y), Z, U, V, W) ring(X, Y, Z, U, V, W) => if!62206(X, Y, Z, U, V, W, leq(W, length(V))) if!62206(X, Y, Z, U, V, W, true) => if!62207(X, Y, Z, U, V, W, empty(fstsplit(W, V))) if!62207(X, Y, Z, U, V, W, false) => ring(X, Y, Z, U, sndsplit(W, V), W) if!62206(X, Y, Z, U, V, W, false) => if!62208(X, Y, Z, U, V, W, empty(fstsplit(W, app(map!6220f(three, head(U)), V)))) if!62208(X, Y, Z, U, V, W, false) => ring(X, Y, Z, tail(U), sndsplit(W, app(map!6220f(three, head(U)), V)), W) ring(X, Y, Z, U, V, W) => if!62209(X, Y, Z, U, V, W, empty(map!6220f(three, head(U)))) if!62209(X, Y, Z, U, V, W, true) => ring(X, Y, Z, tail(U), V, W)