/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 U11 : [o * o * o] --> o U21 : [o * o] --> o U31 : [o * o] --> o U41 : [o * o] --> o U51 : [o * o * o] --> o U61 : [o * o] --> o U71 : [o * o] --> o U81 : [o * o * o * o] --> o U82 : [o * o] --> o U91 : [o * o] --> o activate : [o] --> o afterNth : [o * o] --> o and : [o * o] --> o cons : [o * o] --> o fst : [o] --> o head : [o] --> o isLNat : [o] --> o isNatural : [o] --> o isPLNat : [o] --> o n!6220!62200 : [] --> o n!6220!6220afterNth : [o * o] --> o n!6220!6220and : [o * o] --> o n!6220!6220cons : [o * o] --> o n!6220!6220fst : [o] --> o n!6220!6220head : [o] --> o n!6220!6220isLNat : [o] --> o n!6220!6220natsFrom : [o] --> o n!6220!6220nil : [] --> o n!6220!6220pair : [o * o] --> o n!6220!6220s : [o] --> o n!6220!6220sel : [o * o] --> o n!6220!6220snd : [o] --> o n!6220!6220splitAt : [o * o] --> o n!6220!6220tail : [o] --> o n!6220!6220take : [o * 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 U101(tt, X, Y) => fst(splitAt(activate(X), activate(Y))) U11(tt, X, Y) => snd(splitAt(activate(X), activate(Y))) U21(tt, X) => activate(X) U31(tt, X) => activate(X) U41(tt, X) => cons(activate(X), n!6220!6220natsFrom(s(activate(X)))) U51(tt, X, Y) => head(afterNth(activate(X), activate(Y))) U61(tt, X) => activate(X) U71(tt, X) => pair(nil, activate(X)) U81(tt, X, Y, Z) => U82(splitAt(activate(X), activate(Z)), activate(Y)) U82(pair(X, Y), Z) => pair(cons(activate(Z), X), Y) U91(tt, X) => activate(X) afterNth(X, Y) => U11(and(isNatural(X), n!6220!6220isLNat(Y)), X, Y) and(tt, X) => activate(X) fst(pair(X, Y)) => U21(and(isLNat(X), n!6220!6220isLNat(Y)), X) head(cons(X, Y)) => U31(and(isNatural(X), n!6220!6220isLNat(activate(Y))), X) isLNat(n!6220!6220nil) => tt isLNat(n!6220!6220afterNth(X, Y)) => and(isNatural(activate(X)), n!6220!6220isLNat(activate(Y))) isLNat(n!6220!6220cons(X, Y)) => and(isNatural(activate(X)), n!6220!6220isLNat(activate(Y))) isLNat(n!6220!6220fst(X)) => isPLNat(activate(X)) isLNat(n!6220!6220natsFrom(X)) => isNatural(activate(X)) isLNat(n!6220!6220snd(X)) => isPLNat(activate(X)) isLNat(n!6220!6220tail(X)) => isLNat(activate(X)) isLNat(n!6220!6220take(X, Y)) => and(isNatural(activate(X)), n!6220!6220isLNat(activate(Y))) isNatural(n!6220!62200) => tt isNatural(n!6220!6220head(X)) => isLNat(activate(X)) isNatural(n!6220!6220s(X)) => isNatural(activate(X)) isNatural(n!6220!6220sel(X, Y)) => and(isNatural(activate(X)), n!6220!6220isLNat(activate(Y))) isPLNat(n!6220!6220pair(X, Y)) => and(isLNat(activate(X)), n!6220!6220isLNat(activate(Y))) isPLNat(n!6220!6220splitAt(X, Y)) => and(isNatural(activate(X)), n!6220!6220isLNat(activate(Y))) natsFrom(X) => U41(isNatural(X), X) sel(X, Y) => U51(and(isNatural(X), n!6220!6220isLNat(Y)), X, Y) snd(pair(X, Y)) => U61(and(isLNat(X), n!6220!6220isLNat(Y)), Y) splitAt(0, X) => U71(isLNat(X), X) splitAt(s(X), cons(Y, Z)) => U81(and(isNatural(X), n!6220!6220and(isNatural(Y), n!6220!6220isLNat(activate(Z)))), X, Y, activate(Z)) tail(cons(X, Y)) => U91(and(isNatural(X), n!6220!6220isLNat(activate(Y))), activate(Y)) take(X, Y) => U101(and(isNatural(X), n!6220!6220isLNat(Y)), X, Y) natsFrom(X) => n!6220!6220natsFrom(X) isLNat(X) => n!6220!6220isLNat(X) nil => n!6220!6220nil afterNth(X, Y) => n!6220!6220afterNth(X, Y) cons(X, Y) => n!6220!6220cons(X, Y) fst(X) => n!6220!6220fst(X) snd(X) => n!6220!6220snd(X) tail(X) => n!6220!6220tail(X) take(X, Y) => n!6220!6220take(X, Y) 0 => n!6220!62200 head(X) => n!6220!6220head(X) s(X) => n!6220!6220s(X) sel(X, Y) => n!6220!6220sel(X, Y) pair(X, Y) => n!6220!6220pair(X, Y) splitAt(X, Y) => n!6220!6220splitAt(X, Y) and(X, Y) => n!6220!6220and(X, Y) activate(n!6220!6220natsFrom(X)) => natsFrom(X) activate(n!6220!6220isLNat(X)) => isLNat(X) activate(n!6220!6220nil) => nil activate(n!6220!6220afterNth(X, Y)) => afterNth(X, Y) activate(n!6220!6220cons(X, Y)) => cons(X, Y) activate(n!6220!6220fst(X)) => fst(X) activate(n!6220!6220snd(X)) => snd(X) activate(n!6220!6220tail(X)) => tail(X) activate(n!6220!6220take(X, Y)) => take(X, Y) activate(n!6220!62200) => 0 activate(n!6220!6220head(X)) => head(X) activate(n!6220!6220s(X)) => s(X) activate(n!6220!6220sel(X, Y)) => sel(X, Y) activate(n!6220!6220pair(X, Y)) => pair(X, Y) activate(n!6220!6220splitAt(X, Y)) => splitAt(X, Y) activate(n!6220!6220and(X, Y)) => and(X, Y) activate(X) => X