/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 U11 : [o * o * o * o] --> o U12 : [o * o] --> o active : [o] --> o afterNth : [o * o] --> o and : [o * o] --> o cons : [o * o] --> o fst : [o] --> o head : [o] --> o mark : [o] --> o natsFrom : [o] --> o nil : [] --> o ok : [o] --> o pair : [o * o] --> o proper : [o] --> o s : [o] --> o sel : [o * o] --> o snd : [o] --> o splitAt : [o * o] --> o tail : [o] --> o take : [o * o] --> o top : [o] --> o tt : [] --> o active(U11(tt, X, Y, Z)) => mark(U12(splitAt(X, Z), Y)) active(U12(pair(X, Y), Z)) => mark(pair(cons(Z, X), Y)) active(afterNth(X, Y)) => mark(snd(splitAt(X, Y))) active(and(tt, X)) => mark(X) active(fst(pair(X, Y))) => mark(X) active(head(cons(X, Y))) => mark(X) active(natsFrom(X)) => mark(cons(X, natsFrom(s(X)))) active(sel(X, Y)) => mark(head(afterNth(X, Y))) active(snd(pair(X, Y))) => mark(Y) active(splitAt(0, X)) => mark(pair(nil, X)) active(splitAt(s(X), cons(Y, Z))) => mark(U11(tt, X, Y, Z)) active(tail(cons(X, Y))) => mark(Y) active(take(X, Y)) => mark(fst(splitAt(X, Y))) active(U11(X, Y, Z, U)) => U11(active(X), Y, Z, U) active(U12(X, Y)) => U12(active(X), Y) active(splitAt(X, Y)) => splitAt(active(X), Y) active(splitAt(X, Y)) => splitAt(X, active(Y)) active(pair(X, Y)) => pair(active(X), Y) active(pair(X, Y)) => pair(X, active(Y)) active(cons(X, Y)) => cons(active(X), Y) active(afterNth(X, Y)) => afterNth(active(X), Y) active(afterNth(X, Y)) => afterNth(X, active(Y)) active(snd(X)) => snd(active(X)) active(and(X, Y)) => and(active(X), Y) active(fst(X)) => fst(active(X)) active(head(X)) => head(active(X)) active(natsFrom(X)) => natsFrom(active(X)) active(s(X)) => s(active(X)) active(sel(X, Y)) => sel(active(X), Y) active(sel(X, Y)) => sel(X, active(Y)) active(tail(X)) => tail(active(X)) active(take(X, Y)) => take(active(X), Y) active(take(X, Y)) => take(X, active(Y)) U11(mark(X), Y, Z, U) => mark(U11(X, Y, Z, U)) U12(mark(X), Y) => mark(U12(X, Y)) splitAt(mark(X), Y) => mark(splitAt(X, Y)) splitAt(X, mark(Y)) => mark(splitAt(X, Y)) pair(mark(X), Y) => mark(pair(X, Y)) pair(X, mark(Y)) => mark(pair(X, Y)) cons(mark(X), Y) => mark(cons(X, Y)) afterNth(mark(X), Y) => mark(afterNth(X, Y)) afterNth(X, mark(Y)) => mark(afterNth(X, Y)) snd(mark(X)) => mark(snd(X)) and(mark(X), Y) => mark(and(X, Y)) fst(mark(X)) => mark(fst(X)) head(mark(X)) => mark(head(X)) natsFrom(mark(X)) => mark(natsFrom(X)) s(mark(X)) => mark(s(X)) sel(mark(X), Y) => mark(sel(X, Y)) sel(X, mark(Y)) => mark(sel(X, Y)) tail(mark(X)) => mark(tail(X)) take(mark(X), Y) => mark(take(X, Y)) take(X, mark(Y)) => mark(take(X, Y)) proper(U11(X, Y, Z, U)) => U11(proper(X), proper(Y), proper(Z), proper(U)) proper(tt) => ok(tt) proper(U12(X, Y)) => U12(proper(X), proper(Y)) proper(splitAt(X, Y)) => splitAt(proper(X), proper(Y)) proper(pair(X, Y)) => pair(proper(X), proper(Y)) proper(cons(X, Y)) => cons(proper(X), proper(Y)) proper(afterNth(X, Y)) => afterNth(proper(X), proper(Y)) proper(snd(X)) => snd(proper(X)) proper(and(X, Y)) => and(proper(X), proper(Y)) proper(fst(X)) => fst(proper(X)) proper(head(X)) => head(proper(X)) proper(natsFrom(X)) => natsFrom(proper(X)) proper(s(X)) => s(proper(X)) proper(sel(X, Y)) => sel(proper(X), proper(Y)) proper(0) => ok(0) proper(nil) => ok(nil) proper(tail(X)) => tail(proper(X)) proper(take(X, Y)) => take(proper(X), proper(Y)) U11(ok(X), ok(Y), ok(Z), ok(U)) => ok(U11(X, Y, Z, U)) U12(ok(X), ok(Y)) => ok(U12(X, Y)) splitAt(ok(X), ok(Y)) => ok(splitAt(X, Y)) pair(ok(X), ok(Y)) => ok(pair(X, Y)) cons(ok(X), ok(Y)) => ok(cons(X, Y)) afterNth(ok(X), ok(Y)) => ok(afterNth(X, Y)) snd(ok(X)) => ok(snd(X)) and(ok(X), ok(Y)) => ok(and(X, Y)) fst(ok(X)) => ok(fst(X)) head(ok(X)) => ok(head(X)) natsFrom(ok(X)) => ok(natsFrom(X)) s(ok(X)) => ok(s(X)) sel(ok(X), ok(Y)) => ok(sel(X, Y)) tail(ok(X)) => ok(tail(X)) take(ok(X), ok(Y)) => ok(take(X, Y)) top(mark(X)) => top(proper(X)) top(ok(X)) => top(active(X))