/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 U11 : [o * o * o] --> o U12 : [o * o * o] --> o U21 : [o * o] --> o U22 : [o * o] --> o U31 : [o * o] --> o U32 : [o * o] --> o U41 : [o * o * o] --> o U42 : [o * o * o] --> o U51 : [o * o] --> o U52 : [o * o] --> o U61 : [o * o * o * o] --> o U62 : [o * o * o * o] --> o U63 : [o * o * o * o] --> o U64 : [o * o] --> o U71 : [o * o] --> o U72 : [o * o] --> o U81 : [o * o * o] --> o U82 : [o * o * o] --> o active : [o] --> o afterNth : [o * o] --> o cons : [o * o] --> o fst : [o] --> o head : [o] --> o mark : [o] --> o natsFrom : [o] --> o nil : [] --> o pair : [o * o] --> o s : [o] --> o sel : [o * o] --> o snd : [o] --> o splitAt : [o * o] --> o tail : [o] --> o take : [o * o] --> o tt : [] --> o active(U11(tt, X, Y)) => mark(U12(tt, X, Y)) active(U12(tt, X, Y)) => mark(snd(splitAt(X, Y))) active(U21(tt, X)) => mark(U22(tt, X)) active(U22(tt, X)) => mark(X) active(U31(tt, X)) => mark(U32(tt, X)) active(U32(tt, X)) => mark(X) active(U41(tt, X, Y)) => mark(U42(tt, X, Y)) active(U42(tt, X, Y)) => mark(head(afterNth(X, Y))) active(U51(tt, X)) => mark(U52(tt, X)) active(U52(tt, X)) => mark(X) active(U61(tt, X, Y, Z)) => mark(U62(tt, X, Y, Z)) active(U62(tt, X, Y, Z)) => mark(U63(tt, X, Y, Z)) active(U63(tt, X, Y, Z)) => mark(U64(splitAt(X, Z), Y)) active(U64(pair(X, Y), Z)) => mark(pair(cons(Z, X), Y)) active(U71(tt, X)) => mark(U72(tt, X)) active(U72(tt, X)) => mark(X) active(U81(tt, X, Y)) => mark(U82(tt, X, Y)) active(U82(tt, X, Y)) => mark(fst(splitAt(X, Y))) active(afterNth(X, Y)) => mark(U11(tt, X, Y)) active(fst(pair(X, Y))) => mark(U21(tt, X)) active(head(cons(X, Y))) => mark(U31(tt, X)) active(natsFrom(X)) => mark(cons(X, natsFrom(s(X)))) active(sel(X, Y)) => mark(U41(tt, X, Y)) active(snd(pair(X, Y))) => mark(U51(tt, Y)) active(splitAt(0, X)) => mark(pair(nil, X)) active(splitAt(s(X), cons(Y, Z))) => mark(U61(tt, X, Y, Z)) active(tail(cons(X, Y))) => mark(U71(tt, Y)) active(take(X, Y)) => mark(U81(tt, X, Y)) mark(U11(X, Y, Z)) => active(U11(mark(X), Y, Z)) mark(tt) => active(tt) mark(U12(X, Y, Z)) => active(U12(mark(X), Y, Z)) mark(snd(X)) => active(snd(mark(X))) mark(splitAt(X, Y)) => active(splitAt(mark(X), mark(Y))) mark(U21(X, Y)) => active(U21(mark(X), Y)) mark(U22(X, Y)) => active(U22(mark(X), Y)) mark(U31(X, Y)) => active(U31(mark(X), Y)) mark(U32(X, Y)) => active(U32(mark(X), Y)) mark(U41(X, Y, Z)) => active(U41(mark(X), Y, Z)) mark(U42(X, Y, Z)) => active(U42(mark(X), Y, Z)) mark(head(X)) => active(head(mark(X))) mark(afterNth(X, Y)) => active(afterNth(mark(X), mark(Y))) mark(U51(X, Y)) => active(U51(mark(X), Y)) mark(U52(X, Y)) => active(U52(mark(X), Y)) mark(U61(X, Y, Z, U)) => active(U61(mark(X), Y, Z, U)) mark(U62(X, Y, Z, U)) => active(U62(mark(X), Y, Z, U)) mark(U63(X, Y, Z, U)) => active(U63(mark(X), Y, Z, U)) mark(U64(X, Y)) => active(U64(mark(X), Y)) mark(pair(X, Y)) => active(pair(mark(X), mark(Y))) mark(cons(X, Y)) => active(cons(mark(X), Y)) mark(U71(X, Y)) => active(U71(mark(X), Y)) mark(U72(X, Y)) => active(U72(mark(X), Y)) mark(U81(X, Y, Z)) => active(U81(mark(X), Y, Z)) mark(U82(X, Y, Z)) => active(U82(mark(X), Y, Z)) mark(fst(X)) => active(fst(mark(X))) mark(natsFrom(X)) => active(natsFrom(mark(X))) mark(s(X)) => active(s(mark(X))) mark(sel(X, Y)) => active(sel(mark(X), mark(Y))) mark(0) => active(0) mark(nil) => active(nil) mark(tail(X)) => active(tail(mark(X))) mark(take(X, Y)) => active(take(mark(X), mark(Y))) U11(mark(X), Y, Z) => U11(X, Y, Z) U11(X, mark(Y), Z) => U11(X, Y, Z) U11(X, Y, mark(Z)) => U11(X, Y, Z) U11(active(X), Y, Z) => U11(X, Y, Z) U11(X, active(Y), Z) => U11(X, Y, Z) U11(X, Y, active(Z)) => U11(X, Y, Z) U12(mark(X), Y, Z) => U12(X, Y, Z) U12(X, mark(Y), Z) => U12(X, Y, Z) U12(X, Y, mark(Z)) => U12(X, Y, Z) U12(active(X), Y, Z) => U12(X, Y, Z) U12(X, active(Y), Z) => U12(X, Y, Z) U12(X, Y, active(Z)) => U12(X, Y, Z) snd(mark(X)) => snd(X) snd(active(X)) => snd(X) splitAt(mark(X), Y) => splitAt(X, Y) splitAt(X, mark(Y)) => splitAt(X, Y) splitAt(active(X), Y) => splitAt(X, Y) splitAt(X, active(Y)) => splitAt(X, Y) U21(mark(X), Y) => U21(X, Y) U21(X, mark(Y)) => U21(X, Y) U21(active(X), Y) => U21(X, Y) U21(X, active(Y)) => U21(X, Y) U22(mark(X), Y) => U22(X, Y) U22(X, mark(Y)) => U22(X, Y) U22(active(X), Y) => U22(X, Y) U22(X, active(Y)) => U22(X, Y) U31(mark(X), Y) => U31(X, Y) U31(X, mark(Y)) => U31(X, Y) U31(active(X), Y) => U31(X, Y) U31(X, active(Y)) => U31(X, Y) U32(mark(X), Y) => U32(X, Y) U32(X, mark(Y)) => U32(X, Y) U32(active(X), Y) => U32(X, Y) U32(X, active(Y)) => U32(X, Y) U41(mark(X), Y, Z) => U41(X, Y, Z) U41(X, mark(Y), Z) => U41(X, Y, Z) U41(X, Y, mark(Z)) => U41(X, Y, Z) U41(active(X), Y, Z) => U41(X, Y, Z) U41(X, active(Y), Z) => U41(X, Y, Z) U41(X, Y, active(Z)) => U41(X, Y, Z) U42(mark(X), Y, Z) => U42(X, Y, Z) U42(X, mark(Y), Z) => U42(X, Y, Z) U42(X, Y, mark(Z)) => U42(X, Y, Z) U42(active(X), Y, Z) => U42(X, Y, Z) U42(X, active(Y), Z) => U42(X, Y, Z) U42(X, Y, active(Z)) => U42(X, Y, Z) head(mark(X)) => head(X) head(active(X)) => head(X) afterNth(mark(X), Y) => afterNth(X, Y) afterNth(X, mark(Y)) => afterNth(X, Y) afterNth(active(X), Y) => afterNth(X, Y) afterNth(X, active(Y)) => afterNth(X, Y) U51(mark(X), Y) => U51(X, Y) U51(X, mark(Y)) => U51(X, Y) U51(active(X), Y) => U51(X, Y) U51(X, active(Y)) => U51(X, Y) U52(mark(X), Y) => U52(X, Y) U52(X, mark(Y)) => U52(X, Y) U52(active(X), Y) => U52(X, Y) U52(X, active(Y)) => U52(X, Y) U61(mark(X), Y, Z, U) => U61(X, Y, Z, U) U61(X, mark(Y), Z, U) => U61(X, Y, Z, U) U61(X, Y, mark(Z), U) => U61(X, Y, Z, U) U61(X, Y, Z, mark(U)) => U61(X, Y, Z, U) U61(active(X), Y, Z, U) => U61(X, Y, Z, U) U61(X, active(Y), Z, U) => U61(X, Y, Z, U) U61(X, Y, active(Z), U) => U61(X, Y, Z, U) U61(X, Y, Z, active(U)) => U61(X, Y, Z, U) U62(mark(X), Y, Z, U) => U62(X, Y, Z, U) U62(X, mark(Y), Z, U) => U62(X, Y, Z, U) U62(X, Y, mark(Z), U) => U62(X, Y, Z, U) U62(X, Y, Z, mark(U)) => U62(X, Y, Z, U) U62(active(X), Y, Z, U) => U62(X, Y, Z, U) U62(X, active(Y), Z, U) => U62(X, Y, Z, U) U62(X, Y, active(Z), U) => U62(X, Y, Z, U) U62(X, Y, Z, active(U)) => U62(X, Y, Z, U) U63(mark(X), Y, Z, U) => U63(X, Y, Z, U) U63(X, mark(Y), Z, U) => U63(X, Y, Z, U) U63(X, Y, mark(Z), U) => U63(X, Y, Z, U) U63(X, Y, Z, mark(U)) => U63(X, Y, Z, U) U63(active(X), Y, Z, U) => U63(X, Y, Z, U) U63(X, active(Y), Z, U) => U63(X, Y, Z, U) U63(X, Y, active(Z), U) => U63(X, Y, Z, U) U63(X, Y, Z, active(U)) => U63(X, Y, Z, U) U64(mark(X), Y) => U64(X, Y) U64(X, mark(Y)) => U64(X, Y) U64(active(X), Y) => U64(X, Y) U64(X, active(Y)) => U64(X, Y) pair(mark(X), Y) => pair(X, Y) pair(X, mark(Y)) => pair(X, Y) pair(active(X), Y) => pair(X, Y) pair(X, active(Y)) => pair(X, Y) 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) U71(mark(X), Y) => U71(X, Y) U71(X, mark(Y)) => U71(X, Y) U71(active(X), Y) => U71(X, Y) U71(X, active(Y)) => U71(X, Y) U72(mark(X), Y) => U72(X, Y) U72(X, mark(Y)) => U72(X, Y) U72(active(X), Y) => U72(X, Y) U72(X, active(Y)) => U72(X, Y) U81(mark(X), Y, Z) => U81(X, Y, Z) U81(X, mark(Y), Z) => U81(X, Y, Z) U81(X, Y, mark(Z)) => U81(X, Y, Z) U81(active(X), Y, Z) => U81(X, Y, Z) U81(X, active(Y), Z) => U81(X, Y, Z) U81(X, Y, active(Z)) => U81(X, Y, Z) U82(mark(X), Y, Z) => U82(X, Y, Z) U82(X, mark(Y), Z) => U82(X, Y, Z) U82(X, Y, mark(Z)) => U82(X, Y, Z) U82(active(X), Y, Z) => U82(X, Y, Z) U82(X, active(Y), Z) => U82(X, Y, Z) U82(X, Y, active(Z)) => U82(X, Y, Z) fst(mark(X)) => fst(X) fst(active(X)) => fst(X) natsFrom(mark(X)) => natsFrom(X) natsFrom(active(X)) => natsFrom(X) s(mark(X)) => s(X) s(active(X)) => s(X) sel(mark(X), Y) => sel(X, Y) sel(X, mark(Y)) => sel(X, Y) sel(active(X), Y) => sel(X, Y) sel(X, active(Y)) => sel(X, Y) tail(mark(X)) => tail(X) tail(active(X)) => tail(X) take(mark(X), Y) => take(X, Y) take(X, mark(Y)) => take(X, Y) take(active(X), Y) => take(X, Y) take(X, active(Y)) => take(X, Y)