/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 U101 : [o * o * o] --> o U102 : [o * o] --> o U103 : [o] --> o U11 : [o * o * o] --> o U111 : [o * o] --> o U112 : [o] --> o U121 : [o * o] --> o U122 : [o] --> o U131 : [o * o * o] --> o U132 : [o * o] --> o U133 : [o] --> o U141 : [o * o * o] --> o U142 : [o * o] --> o U143 : [o] --> o U151 : [o * o * o] --> o U152 : [o * o] --> o U153 : [o] --> o U161 : [o * o] --> o U171 : [o * o * o] --> o U181 : [o * o] --> o U191 : [o * o] --> o U201 : [o * o * o * o] --> o U202 : [o * o] --> o U21 : [o * o] --> o U211 : [o * o] --> o U221 : [o * o * o] --> o U31 : [o * o] --> o U41 : [o * o * o] --> o U42 : [o * o] --> o U43 : [o] --> o U51 : [o * o * o] --> o U52 : [o * o] --> o U53 : [o] --> o U61 : [o * o] --> o U62 : [o] --> o U71 : [o * o] --> o U72 : [o] --> o U81 : [o * o] --> o U82 : [o] --> o U91 : [o * o] --> o U92 : [o] --> o active : [o] --> o afterNth : [o * o] --> o and : [o * o] --> o cons : [o * o] --> o fst : [o] --> o head : [o] --> o isLNat : [o] --> o isLNatKind : [o] --> o isNatural : [o] --> o isNaturalKind : [o] --> o isPLNat : [o] --> o isPLNatKind : [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(U101(tt, X, Y)) => mark(U102(isNatural(X), Y)) active(U102(tt, X)) => mark(U103(isLNat(X))) active(U103(tt)) => mark(tt) active(U11(tt, X, Y)) => mark(snd(splitAt(X, Y))) active(U111(tt, X)) => mark(U112(isLNat(X))) active(U112(tt)) => mark(tt) active(U121(tt, X)) => mark(U122(isNatural(X))) active(U122(tt)) => mark(tt) active(U131(tt, X, Y)) => mark(U132(isNatural(X), Y)) active(U132(tt, X)) => mark(U133(isLNat(X))) active(U133(tt)) => mark(tt) active(U141(tt, X, Y)) => mark(U142(isLNat(X), Y)) active(U142(tt, X)) => mark(U143(isLNat(X))) active(U143(tt)) => mark(tt) active(U151(tt, X, Y)) => mark(U152(isNatural(X), Y)) active(U152(tt, X)) => mark(U153(isLNat(X))) active(U153(tt)) => mark(tt) active(U161(tt, X)) => mark(cons(X, natsFrom(s(X)))) active(U171(tt, X, Y)) => mark(head(afterNth(X, Y))) active(U181(tt, X)) => mark(X) active(U191(tt, X)) => mark(pair(nil, X)) active(U201(tt, X, Y, Z)) => mark(U202(splitAt(X, Z), Y)) active(U202(pair(X, Y), Z)) => mark(pair(cons(Z, X), Y)) active(U21(tt, X)) => mark(X) active(U211(tt, X)) => mark(X) active(U221(tt, X, Y)) => mark(fst(splitAt(X, Y))) active(U31(tt, X)) => mark(X) active(U41(tt, X, Y)) => mark(U42(isNatural(X), Y)) active(U42(tt, X)) => mark(U43(isLNat(X))) active(U43(tt)) => mark(tt) active(U51(tt, X, Y)) => mark(U52(isNatural(X), Y)) active(U52(tt, X)) => mark(U53(isLNat(X))) active(U53(tt)) => mark(tt) active(U61(tt, X)) => mark(U62(isPLNat(X))) active(U62(tt)) => mark(tt) active(U71(tt, X)) => mark(U72(isNatural(X))) active(U72(tt)) => mark(tt) active(U81(tt, X)) => mark(U82(isPLNat(X))) active(U82(tt)) => mark(tt) active(U91(tt, X)) => mark(U92(isLNat(X))) active(U92(tt)) => mark(tt) active(afterNth(X, Y)) => mark(U11(and(and(isNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y)) active(and(tt, X)) => mark(X) active(fst(pair(X, Y))) => mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) active(head(cons(X, Y))) => mark(U31(and(and(isNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) active(isLNat(nil)) => mark(tt) active(isLNat(afterNth(X, Y))) => mark(U41(and(isNaturalKind(X), isLNatKind(Y)), X, Y)) active(isLNat(cons(X, Y))) => mark(U51(and(isNaturalKind(X), isLNatKind(Y)), X, Y)) active(isLNat(fst(X))) => mark(U61(isPLNatKind(X), X)) active(isLNat(natsFrom(X))) => mark(U71(isNaturalKind(X), X)) active(isLNat(snd(X))) => mark(U81(isPLNatKind(X), X)) active(isLNat(tail(X))) => mark(U91(isLNatKind(X), X)) active(isLNat(take(X, Y))) => mark(U101(and(isNaturalKind(X), isLNatKind(Y)), X, Y)) active(isLNatKind(nil)) => mark(tt) active(isLNatKind(afterNth(X, Y))) => mark(and(isNaturalKind(X), isLNatKind(Y))) active(isLNatKind(cons(X, Y))) => mark(and(isNaturalKind(X), isLNatKind(Y))) active(isLNatKind(fst(X))) => mark(isPLNatKind(X)) active(isLNatKind(natsFrom(X))) => mark(isNaturalKind(X)) active(isLNatKind(snd(X))) => mark(isPLNatKind(X)) active(isLNatKind(tail(X))) => mark(isLNatKind(X)) active(isLNatKind(take(X, Y))) => mark(and(isNaturalKind(X), isLNatKind(Y))) active(isNatural(0)) => mark(tt) active(isNatural(head(X))) => mark(U111(isLNatKind(X), X)) active(isNatural(s(X))) => mark(U121(isNaturalKind(X), X)) active(isNatural(sel(X, Y))) => mark(U131(and(isNaturalKind(X), isLNatKind(Y)), X, Y)) active(isNaturalKind(0)) => mark(tt) active(isNaturalKind(head(X))) => mark(isLNatKind(X)) active(isNaturalKind(s(X))) => mark(isNaturalKind(X)) active(isNaturalKind(sel(X, Y))) => mark(and(isNaturalKind(X), isLNatKind(Y))) active(isPLNat(pair(X, Y))) => mark(U141(and(isLNatKind(X), isLNatKind(Y)), X, Y)) active(isPLNat(splitAt(X, Y))) => mark(U151(and(isNaturalKind(X), isLNatKind(Y)), X, Y)) active(isPLNatKind(pair(X, Y))) => mark(and(isLNatKind(X), isLNatKind(Y))) active(isPLNatKind(splitAt(X, Y))) => mark(and(isNaturalKind(X), isLNatKind(Y))) active(natsFrom(X)) => mark(U161(and(isNatural(X), isNaturalKind(X)), X)) active(sel(X, Y)) => mark(U171(and(and(isNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y)) active(snd(pair(X, Y))) => mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) active(splitAt(0, X)) => mark(U191(and(isLNat(X), isLNatKind(X)), X)) active(splitAt(s(X), cons(Y, Z))) => mark(U201(and(and(isNatural(X), isNaturalKind(X)), and(and(isNatural(Y), isNaturalKind(Y)), and(isLNat(Z), isLNatKind(Z)))), X, Y, Z)) active(tail(cons(X, Y))) => mark(U211(and(and(isNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) active(take(X, Y)) => mark(U221(and(and(isNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y)) mark(U101(X, Y, Z)) => active(U101(mark(X), Y, Z)) mark(tt) => active(tt) mark(U102(X, Y)) => active(U102(mark(X), Y)) mark(isNatural(X)) => active(isNatural(X)) mark(U103(X)) => active(U103(mark(X))) mark(isLNat(X)) => active(isLNat(X)) mark(U11(X, Y, Z)) => active(U11(mark(X), Y, Z)) mark(snd(X)) => active(snd(mark(X))) mark(splitAt(X, Y)) => active(splitAt(mark(X), mark(Y))) mark(U111(X, Y)) => active(U111(mark(X), Y)) mark(U112(X)) => active(U112(mark(X))) mark(U121(X, Y)) => active(U121(mark(X), Y)) mark(U122(X)) => active(U122(mark(X))) mark(U131(X, Y, Z)) => active(U131(mark(X), Y, Z)) mark(U132(X, Y)) => active(U132(mark(X), Y)) mark(U133(X)) => active(U133(mark(X))) mark(U141(X, Y, Z)) => active(U141(mark(X), Y, Z)) mark(U142(X, Y)) => active(U142(mark(X), Y)) mark(U143(X)) => active(U143(mark(X))) mark(U151(X, Y, Z)) => active(U151(mark(X), Y, Z)) mark(U152(X, Y)) => active(U152(mark(X), Y)) mark(U153(X)) => active(U153(mark(X))) mark(U161(X, Y)) => active(U161(mark(X), Y)) mark(cons(X, Y)) => active(cons(mark(X), Y)) mark(natsFrom(X)) => active(natsFrom(mark(X))) mark(s(X)) => active(s(mark(X))) mark(U171(X, Y, Z)) => active(U171(mark(X), Y, Z)) mark(head(X)) => active(head(mark(X))) mark(afterNth(X, Y)) => active(afterNth(mark(X), mark(Y))) mark(U181(X, Y)) => active(U181(mark(X), Y)) mark(U191(X, Y)) => active(U191(mark(X), Y)) mark(pair(X, Y)) => active(pair(mark(X), mark(Y))) mark(nil) => active(nil) mark(U201(X, Y, Z, U)) => active(U201(mark(X), Y, Z, U)) mark(U202(X, Y)) => active(U202(mark(X), Y)) mark(U21(X, Y)) => active(U21(mark(X), Y)) mark(U211(X, Y)) => active(U211(mark(X), Y)) mark(U221(X, Y, Z)) => active(U221(mark(X), Y, Z)) mark(fst(X)) => active(fst(mark(X))) mark(U31(X, Y)) => active(U31(mark(X), Y)) mark(U41(X, Y, Z)) => active(U41(mark(X), Y, Z)) mark(U42(X, Y)) => active(U42(mark(X), Y)) mark(U43(X)) => active(U43(mark(X))) mark(U51(X, Y, Z)) => active(U51(mark(X), Y, Z)) mark(U52(X, Y)) => active(U52(mark(X), Y)) mark(U53(X)) => active(U53(mark(X))) mark(U61(X, Y)) => active(U61(mark(X), Y)) mark(U62(X)) => active(U62(mark(X))) mark(isPLNat(X)) => active(isPLNat(X)) mark(U71(X, Y)) => active(U71(mark(X), Y)) mark(U72(X)) => active(U72(mark(X))) mark(U81(X, Y)) => active(U81(mark(X), Y)) mark(U82(X)) => active(U82(mark(X))) mark(U91(X, Y)) => active(U91(mark(X), Y)) mark(U92(X)) => active(U92(mark(X))) mark(and(X, Y)) => active(and(mark(X), Y)) mark(isNaturalKind(X)) => active(isNaturalKind(X)) mark(isLNatKind(X)) => active(isLNatKind(X)) mark(isPLNatKind(X)) => active(isPLNatKind(X)) mark(tail(X)) => active(tail(mark(X))) mark(take(X, Y)) => active(take(mark(X), mark(Y))) mark(0) => active(0) mark(sel(X, Y)) => active(sel(mark(X), mark(Y))) U101(mark(X), Y, Z) => U101(X, Y, Z) U101(X, mark(Y), Z) => U101(X, Y, Z) U101(X, Y, mark(Z)) => U101(X, Y, Z) U101(active(X), Y, Z) => U101(X, Y, Z) U101(X, active(Y), Z) => U101(X, Y, Z) U101(X, Y, active(Z)) => U101(X, Y, Z) U102(mark(X), Y) => U102(X, Y) U102(X, mark(Y)) => U102(X, Y) U102(active(X), Y) => U102(X, Y) U102(X, active(Y)) => U102(X, Y) isNatural(mark(X)) => isNatural(X) isNatural(active(X)) => isNatural(X) U103(mark(X)) => U103(X) U103(active(X)) => U103(X) isLNat(mark(X)) => isLNat(X) isLNat(active(X)) => isLNat(X) 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) 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) U111(mark(X), Y) => U111(X, Y) U111(X, mark(Y)) => U111(X, Y) U111(active(X), Y) => U111(X, Y) U111(X, active(Y)) => U111(X, Y) U112(mark(X)) => U112(X) U112(active(X)) => U112(X) U121(mark(X), Y) => U121(X, Y) U121(X, mark(Y)) => U121(X, Y) U121(active(X), Y) => U121(X, Y) U121(X, active(Y)) => U121(X, Y) U122(mark(X)) => U122(X) U122(active(X)) => U122(X) U131(mark(X), Y, Z) => U131(X, Y, Z) U131(X, mark(Y), Z) => U131(X, Y, Z) U131(X, Y, mark(Z)) => U131(X, Y, Z) U131(active(X), Y, Z) => U131(X, Y, Z) U131(X, active(Y), Z) => U131(X, Y, Z) U131(X, Y, active(Z)) => U131(X, Y, Z) U132(mark(X), Y) => U132(X, Y) U132(X, mark(Y)) => U132(X, Y) U132(active(X), Y) => U132(X, Y) U132(X, active(Y)) => U132(X, Y) U133(mark(X)) => U133(X) U133(active(X)) => U133(X) U141(mark(X), Y, Z) => U141(X, Y, Z) U141(X, mark(Y), Z) => U141(X, Y, Z) U141(X, Y, mark(Z)) => U141(X, Y, Z) U141(active(X), Y, Z) => U141(X, Y, Z) U141(X, active(Y), Z) => U141(X, Y, Z) U141(X, Y, active(Z)) => U141(X, Y, Z) U142(mark(X), Y) => U142(X, Y) U142(X, mark(Y)) => U142(X, Y) U142(active(X), Y) => U142(X, Y) U142(X, active(Y)) => U142(X, Y) U143(mark(X)) => U143(X) U143(active(X)) => U143(X) U151(mark(X), Y, Z) => U151(X, Y, Z) U151(X, mark(Y), Z) => U151(X, Y, Z) U151(X, Y, mark(Z)) => U151(X, Y, Z) U151(active(X), Y, Z) => U151(X, Y, Z) U151(X, active(Y), Z) => U151(X, Y, Z) U151(X, Y, active(Z)) => U151(X, Y, Z) U152(mark(X), Y) => U152(X, Y) U152(X, mark(Y)) => U152(X, Y) U152(active(X), Y) => U152(X, Y) U152(X, active(Y)) => U152(X, Y) U153(mark(X)) => U153(X) U153(active(X)) => U153(X) U161(mark(X), Y) => U161(X, Y) U161(X, mark(Y)) => U161(X, Y) U161(active(X), Y) => U161(X, Y) U161(X, active(Y)) => U161(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) natsFrom(mark(X)) => natsFrom(X) natsFrom(active(X)) => natsFrom(X) s(mark(X)) => s(X) s(active(X)) => s(X) U171(mark(X), Y, Z) => U171(X, Y, Z) U171(X, mark(Y), Z) => U171(X, Y, Z) U171(X, Y, mark(Z)) => U171(X, Y, Z) U171(active(X), Y, Z) => U171(X, Y, Z) U171(X, active(Y), Z) => U171(X, Y, Z) U171(X, Y, active(Z)) => U171(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) U181(mark(X), Y) => U181(X, Y) U181(X, mark(Y)) => U181(X, Y) U181(active(X), Y) => U181(X, Y) U181(X, active(Y)) => U181(X, Y) U191(mark(X), Y) => U191(X, Y) U191(X, mark(Y)) => U191(X, Y) U191(active(X), Y) => U191(X, Y) U191(X, active(Y)) => U191(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) U201(mark(X), Y, Z, U) => U201(X, Y, Z, U) U201(X, mark(Y), Z, U) => U201(X, Y, Z, U) U201(X, Y, mark(Z), U) => U201(X, Y, Z, U) U201(X, Y, Z, mark(U)) => U201(X, Y, Z, U) U201(active(X), Y, Z, U) => U201(X, Y, Z, U) U201(X, active(Y), Z, U) => U201(X, Y, Z, U) U201(X, Y, active(Z), U) => U201(X, Y, Z, U) U201(X, Y, Z, active(U)) => U201(X, Y, Z, U) U202(mark(X), Y) => U202(X, Y) U202(X, mark(Y)) => U202(X, Y) U202(active(X), Y) => U202(X, Y) U202(X, active(Y)) => U202(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) U211(mark(X), Y) => U211(X, Y) U211(X, mark(Y)) => U211(X, Y) U211(active(X), Y) => U211(X, Y) U211(X, active(Y)) => U211(X, Y) U221(mark(X), Y, Z) => U221(X, Y, Z) U221(X, mark(Y), Z) => U221(X, Y, Z) U221(X, Y, mark(Z)) => U221(X, Y, Z) U221(active(X), Y, Z) => U221(X, Y, Z) U221(X, active(Y), Z) => U221(X, Y, Z) U221(X, Y, active(Z)) => U221(X, Y, Z) fst(mark(X)) => fst(X) fst(active(X)) => fst(X) 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) 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) => U42(X, Y) U42(X, mark(Y)) => U42(X, Y) U42(active(X), Y) => U42(X, Y) U42(X, active(Y)) => U42(X, Y) U43(mark(X)) => U43(X) U43(active(X)) => U43(X) U51(mark(X), Y, Z) => U51(X, Y, Z) U51(X, mark(Y), Z) => U51(X, Y, Z) U51(X, Y, mark(Z)) => U51(X, Y, Z) U51(active(X), Y, Z) => U51(X, Y, Z) U51(X, active(Y), Z) => U51(X, Y, Z) U51(X, Y, active(Z)) => U51(X, Y, Z) 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) U53(mark(X)) => U53(X) U53(active(X)) => U53(X) U61(mark(X), Y) => U61(X, Y) U61(X, mark(Y)) => U61(X, Y) U61(active(X), Y) => U61(X, Y) U61(X, active(Y)) => U61(X, Y) U62(mark(X)) => U62(X) U62(active(X)) => U62(X) isPLNat(mark(X)) => isPLNat(X) isPLNat(active(X)) => isPLNat(X) 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)) => U72(X) U72(active(X)) => U72(X) U81(mark(X), Y) => U81(X, Y) U81(X, mark(Y)) => U81(X, Y) U81(active(X), Y) => U81(X, Y) U81(X, active(Y)) => U81(X, Y) U82(mark(X)) => U82(X) U82(active(X)) => U82(X) U91(mark(X), Y) => U91(X, Y) U91(X, mark(Y)) => U91(X, Y) U91(active(X), Y) => U91(X, Y) U91(X, active(Y)) => U91(X, Y) U92(mark(X)) => U92(X) U92(active(X)) => U92(X) and(mark(X), Y) => and(X, Y) and(X, mark(Y)) => and(X, Y) and(active(X), Y) => and(X, Y) and(X, active(Y)) => and(X, Y) isNaturalKind(mark(X)) => isNaturalKind(X) isNaturalKind(active(X)) => isNaturalKind(X) isLNatKind(mark(X)) => isLNatKind(X) isLNatKind(active(X)) => isLNatKind(X) isPLNatKind(mark(X)) => isPLNatKind(X) isPLNatKind(active(X)) => isPLNatKind(X) 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) 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)