/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 active : [o] --> o cons : [o * o] --> o divides : [o * o] --> o false : [] --> o filter : [o * o] --> o from : [o] --> o head : [o] --> o if : [o * o * o] --> o mark : [o] --> o primes : [] --> o s : [o] --> o sieve : [o] --> o tail : [o] --> o true : [] --> o active(primes) => mark(sieve(from(s(s(0))))) active(from(X)) => mark(cons(X, from(s(X)))) active(head(cons(X, Y))) => mark(X) active(tail(cons(X, Y))) => mark(Y) active(if(true, X, Y)) => mark(X) active(if(false, X, Y)) => mark(Y) active(filter(s(s(X)), cons(Y, Z))) => mark(if(divides(s(s(X)), Y), filter(s(s(X)), Z), cons(Y, filter(X, sieve(Y))))) active(sieve(cons(X, Y))) => mark(cons(X, filter(X, sieve(Y)))) mark(primes) => active(primes) mark(sieve(X)) => active(sieve(mark(X))) mark(from(X)) => active(from(mark(X))) mark(s(X)) => active(s(mark(X))) mark(0) => active(0) mark(cons(X, Y)) => active(cons(mark(X), Y)) mark(head(X)) => active(head(mark(X))) mark(tail(X)) => active(tail(mark(X))) mark(if(X, Y, Z)) => active(if(mark(X), Y, Z)) mark(true) => active(true) mark(false) => active(false) mark(filter(X, Y)) => active(filter(mark(X), mark(Y))) mark(divides(X, Y)) => active(divides(mark(X), mark(Y))) sieve(mark(X)) => sieve(X) sieve(active(X)) => sieve(X) from(mark(X)) => from(X) from(active(X)) => from(X) s(mark(X)) => s(X) s(active(X)) => s(X) cons(mark(X), Y) => cons(X, Y) cons(X, mark(Y)) => cons(X, Y) cons(active(X), Y) => cons(X, Y) cons(X, active(Y)) => cons(X, Y) head(mark(X)) => head(X) head(active(X)) => head(X) tail(mark(X)) => tail(X) tail(active(X)) => tail(X) if(mark(X), Y, Z) => if(X, Y, Z) if(X, mark(Y), Z) => if(X, Y, Z) if(X, Y, mark(Z)) => if(X, Y, Z) if(active(X), Y, Z) => if(X, Y, Z) if(X, active(Y), Z) => if(X, Y, Z) if(X, Y, active(Z)) => if(X, Y, Z) filter(mark(X), Y) => filter(X, Y) filter(X, mark(Y)) => filter(X, Y) filter(active(X), Y) => filter(X, Y) filter(X, active(Y)) => filter(X, Y) divides(mark(X), Y) => divides(X, Y) divides(X, mark(Y)) => divides(X, Y) divides(active(X), Y) => divides(X, Y) divides(X, active(Y)) => divides(X, Y)