YES We consider the system theBenchmark. Alphabet: 0 : [] --> A afterNth : [] --> A -> A -> A and : [] --> A -> A -> A app : [] --> (A -> A) -> A -> A axxafterNth : [] --> A -> A -> A axxand : [] --> A -> A -> A axxfst : [] --> A -> A axxhead : [] --> A -> A axxisLNat : [] --> A -> A axxisLNatKind : [] --> A -> A axxisNatural : [] --> A -> A axxisNaturalKind : [] --> A -> A axxisPLNat : [] --> A -> A axxisPLNatKind : [] --> A -> A axxnatsFrom : [] --> A -> A axxsel : [] --> A -> A -> A axxsnd : [] --> A -> A axxsplitAt : [] --> A -> A -> A axxtail : [] --> A -> A axxtake : [] --> A -> A -> A axxu101 : [] --> A -> A -> A -> A axxu102 : [] --> A -> A -> A axxu103 : [] --> A -> A axxu11 : [] --> A -> A -> A -> A axxu111 : [] --> A -> A -> A axxu112 : [] --> A -> A axxu121 : [] --> A -> A -> A axxu122 : [] --> A -> A axxu131 : [] --> A -> A -> A -> A axxu132 : [] --> A -> A -> A axxu133 : [] --> A -> A axxu141 : [] --> A -> A -> A -> A axxu142 : [] --> A -> A -> A axxu143 : [] --> A -> A axxu151 : [] --> A -> A -> A -> A axxu152 : [] --> A -> A -> A axxu153 : [] --> A -> A axxu161 : [] --> A -> A -> A axxu171 : [] --> A -> A -> A -> A axxu181 : [] --> A -> A -> A axxu191 : [] --> A -> A -> A axxu201 : [] --> A -> A -> A -> A -> A axxu202 : [] --> A -> A -> A axxu21 : [] --> A -> A -> A axxu211 : [] --> A -> A -> A axxu221 : [] --> A -> A -> A -> A axxu31 : [] --> A -> A -> A axxu41 : [] --> A -> A -> A -> A axxu42 : [] --> A -> A -> A axxu43 : [] --> A -> A axxu51 : [] --> A -> A -> A -> A axxu52 : [] --> A -> A -> A axxu53 : [] --> A -> A axxu61 : [] --> A -> A -> A axxu62 : [] --> A -> A axxu71 : [] --> A -> A -> A axxu72 : [] --> A -> A axxu81 : [] --> A -> A -> A axxu82 : [] --> A -> A axxu91 : [] --> A -> A -> A axxu92 : [] --> A -> A cons : [] --> A -> A -> A fst : [] --> A -> A head : [] --> A -> A isLNat : [] --> A -> A isLNatKind : [] --> A -> A isNatural : [] --> A -> A isNaturalKind : [] --> A -> A isPLNat : [] --> A -> A isPLNatKind : [] --> A -> A map : [] --> (A -> A) -> A -> A mark : [] --> A -> A natsFrom : [] --> A -> A nil : [] --> A pair : [] --> A -> A -> A s : [] --> A -> A sel : [] --> A -> A -> A snd : [] --> A -> A splitAt : [] --> A -> A -> A tail : [] --> A -> A take : [] --> A -> A -> A tt : [] --> A u101 : [] --> A -> A -> A -> A u102 : [] --> A -> A -> A u103 : [] --> A -> A u11 : [] --> A -> A -> A -> A u111 : [] --> A -> A -> A u112 : [] --> A -> A u121 : [] --> A -> A -> A u122 : [] --> A -> A u131 : [] --> A -> A -> A -> A u132 : [] --> A -> A -> A u133 : [] --> A -> A u141 : [] --> A -> A -> A -> A u142 : [] --> A -> A -> A u143 : [] --> A -> A u151 : [] --> A -> A -> A -> A u152 : [] --> A -> A -> A u153 : [] --> A -> A u161 : [] --> A -> A -> A u171 : [] --> A -> A -> A -> A u181 : [] --> A -> A -> A u191 : [] --> A -> A -> A u201 : [] --> A -> A -> A -> A -> A u202 : [] --> A -> A -> A u21 : [] --> A -> A -> A u211 : [] --> A -> A -> A u221 : [] --> A -> A -> A -> A u31 : [] --> A -> A -> A u41 : [] --> A -> A -> A -> A u42 : [] --> A -> A -> A u43 : [] --> A -> A u51 : [] --> A -> A -> A -> A u52 : [] --> A -> A -> A u53 : [] --> A -> A u61 : [] --> A -> A -> A u62 : [] --> A -> A u71 : [] --> A -> A -> A u72 : [] --> A -> A u81 : [] --> A -> A -> A u82 : [] --> A -> A u91 : [] --> A -> A -> A u92 : [] --> A -> A Rules: axxu101 tt x y => axxu102 (axxisNatural x) y axxu102 tt x => axxu103 (axxisLNat x) axxu103 tt => tt axxu11 tt x y => axxsnd (axxsplitAt (mark x) (mark y)) axxu111 tt x => axxu112 (axxisLNat x) axxu112 tt => tt axxu121 tt x => axxu122 (axxisNatural x) axxu122 tt => tt axxu131 tt x y => axxu132 (axxisNatural x) y axxu132 tt x => axxu133 (axxisLNat x) axxu133 tt => tt axxu141 tt x y => axxu142 (axxisLNat x) y axxu142 tt x => axxu143 (axxisLNat x) axxu143 tt => tt axxu151 tt x y => axxu152 (axxisNatural x) y axxu152 tt x => axxu153 (axxisLNat x) axxu153 tt => tt axxu161 tt x => cons (mark x) (natsFrom (s x)) axxu171 tt x y => axxhead (axxafterNth (mark x) (mark y)) axxu181 tt x => mark x axxu191 tt x => pair nil (mark x) axxu201 tt x y z => axxu202 (axxsplitAt (mark x) (mark z)) y axxu202 (pair x y) z => pair (cons (mark z) x) (mark y) axxu21 tt x => mark x axxu211 tt x => mark x axxu221 tt x y => axxfst (axxsplitAt (mark x) (mark y)) axxu31 tt x => mark x axxu41 tt x y => axxu42 (axxisNatural x) y axxu42 tt x => axxu43 (axxisLNat x) axxu43 tt => tt axxu51 tt x y => axxu52 (axxisNatural x) y axxu52 tt x => axxu53 (axxisLNat x) axxu53 tt => tt axxu61 tt x => axxu62 (axxisPLNat x) axxu62 tt => tt axxu71 tt x => axxu72 (axxisNatural x) axxu72 tt => tt axxu81 tt x => axxu82 (axxisPLNat x) axxu82 tt => tt axxu91 tt x => axxu92 (axxisLNat x) axxu92 tt => tt axxafterNth x y => axxu11 (axxand (axxand (axxisNatural x) (isNaturalKind x)) (and (isLNat y) (isLNatKind y))) x y axxand tt x => mark x axxfst (pair x y) => axxu21 (axxand (axxand (axxisLNat x) (isLNatKind x)) (and (isLNat y) (isLNatKind y))) x axxhead (cons x y) => axxu31 (axxand (axxand (axxisNatural x) (isNaturalKind x)) (and (isLNat y) (isLNatKind y))) x axxisLNat nil => tt axxisLNat (afterNth x y) => axxu41 (axxand (axxisNaturalKind x) (isLNatKind y)) x y axxisLNat (cons x y) => axxu51 (axxand (axxisNaturalKind x) (isLNatKind y)) x y axxisLNat (fst x) => axxu61 (axxisPLNatKind x) x axxisLNat (natsFrom x) => axxu71 (axxisNaturalKind x) x axxisLNat (snd x) => axxu81 (axxisPLNatKind x) x axxisLNat (tail x) => axxu91 (axxisLNatKind x) x axxisLNat (take x y) => axxu101 (axxand (axxisNaturalKind x) (isLNatKind y)) x y axxisLNatKind nil => tt axxisLNatKind (afterNth x y) => axxand (axxisNaturalKind x) (isLNatKind y) axxisLNatKind (cons x y) => axxand (axxisNaturalKind x) (isLNatKind y) axxisLNatKind (fst x) => axxisPLNatKind x axxisLNatKind (natsFrom x) => axxisNaturalKind x axxisLNatKind (snd x) => axxisPLNatKind x axxisLNatKind (tail x) => axxisLNatKind x axxisLNatKind (take x y) => axxand (axxisNaturalKind x) (isLNatKind y) axxisNatural 0 => tt axxisNatural (head x) => axxu111 (axxisLNatKind x) x axxisNatural (s x) => axxu121 (axxisNaturalKind x) x axxisNatural (sel x y) => axxu131 (axxand (axxisNaturalKind x) (isLNatKind y)) x y axxisNaturalKind 0 => tt axxisNaturalKind (head x) => axxisLNatKind x axxisNaturalKind (s x) => axxisNaturalKind x axxisNaturalKind (sel x y) => axxand (axxisNaturalKind x) (isLNatKind y) axxisPLNat (pair x y) => axxu141 (axxand (axxisLNatKind x) (isLNatKind y)) x y axxisPLNat (splitAt x y) => axxu151 (axxand (axxisNaturalKind x) (isLNatKind y)) x y axxisPLNatKind (pair x y) => axxand (axxisLNatKind x) (isLNatKind y) axxisPLNatKind (splitAt x y) => axxand (axxisNaturalKind x) (isLNatKind y) axxnatsFrom x => axxu161 (axxand (axxisNatural x) (isNaturalKind x)) x axxsel x y => axxu171 (axxand (axxand (axxisNatural x) (isNaturalKind x)) (and (isLNat y) (isLNatKind y))) x y axxsnd (pair x y) => axxu181 (axxand (axxand (axxisLNat x) (isLNatKind x)) (and (isLNat y) (isLNatKind y))) y axxsplitAt 0 x => axxu191 (axxand (axxisLNat x) (isLNatKind x)) x axxsplitAt (s x) (cons y z) => axxu201 (axxand (axxand (axxisNatural x) (isNaturalKind x)) (and (and (isNatural y) (isNaturalKind y)) (and (isLNat z) (isLNatKind z)))) x y z axxtail (cons x y) => axxu211 (axxand (axxand (axxisNatural x) (isNaturalKind x)) (and (isLNat y) (isLNatKind y))) y axxtake x y => axxu221 (axxand (axxand (axxisNatural x) (isNaturalKind x)) (and (isLNat y) (isLNatKind y))) x y mark (u101 x y z) => axxu101 (mark x) y z mark (u102 x y) => axxu102 (mark x) y mark (isNatural x) => axxisNatural x mark (u103 x) => axxu103 (mark x) mark (isLNat x) => axxisLNat x mark (u11 x y z) => axxu11 (mark x) y z mark (snd x) => axxsnd (mark x) mark (splitAt x y) => axxsplitAt (mark x) (mark y) mark (u111 x y) => axxu111 (mark x) y mark (u112 x) => axxu112 (mark x) mark (u121 x y) => axxu121 (mark x) y mark (u122 x) => axxu122 (mark x) mark (u131 x y z) => axxu131 (mark x) y z mark (u132 x y) => axxu132 (mark x) y mark (u133 x) => axxu133 (mark x) mark (u141 x y z) => axxu141 (mark x) y z mark (u142 x y) => axxu142 (mark x) y mark (u143 x) => axxu143 (mark x) mark (u151 x y z) => axxu151 (mark x) y z mark (u152 x y) => axxu152 (mark x) y mark (u153 x) => axxu153 (mark x) mark (u161 x y) => axxu161 (mark x) y mark (natsFrom x) => axxnatsFrom (mark x) mark (u171 x y z) => axxu171 (mark x) y z mark (head x) => axxhead (mark x) mark (afterNth x y) => axxafterNth (mark x) (mark y) mark (u181 x y) => axxu181 (mark x) y mark (u191 x y) => axxu191 (mark x) y mark (u201 x y z u) => axxu201 (mark x) y z u mark (u202 x y) => axxu202 (mark x) y mark (u21 x y) => axxu21 (mark x) y mark (u211 x y) => axxu211 (mark x) y mark (u221 x y z) => axxu221 (mark x) y z mark (fst x) => axxfst (mark x) mark (u31 x y) => axxu31 (mark x) y mark (u41 x y z) => axxu41 (mark x) y z mark (u42 x y) => axxu42 (mark x) y mark (u43 x) => axxu43 (mark x) mark (u51 x y z) => axxu51 (mark x) y z mark (u52 x y) => axxu52 (mark x) y mark (u53 x) => axxu53 (mark x) mark (u61 x y) => axxu61 (mark x) y mark (u62 x) => axxu62 (mark x) mark (isPLNat x) => axxisPLNat x mark (u71 x y) => axxu71 (mark x) y mark (u72 x) => axxu72 (mark x) mark (u81 x y) => axxu81 (mark x) y mark (u82 x) => axxu82 (mark x) mark (u91 x y) => axxu91 (mark x) y mark (u92 x) => axxu92 (mark x) mark (and x y) => axxand (mark x) y mark (isNaturalKind x) => axxisNaturalKind x mark (isLNatKind x) => axxisLNatKind x mark (isPLNatKind x) => axxisPLNatKind x mark (tail x) => axxtail (mark x) mark (take x y) => axxtake (mark x) (mark y) mark (sel x y) => axxsel (mark x) (mark y) mark tt => tt mark (cons x y) => cons (mark x) y mark (s x) => s (mark x) mark (pair x y) => pair (mark x) (mark y) mark nil => nil mark 0 => 0 axxu101 x y z => u101 x y z axxu102 x y => u102 x y axxisNatural x => isNatural x axxu103 x => u103 x axxisLNat x => isLNat x axxu11 x y z => u11 x y z axxsnd x => snd x axxsplitAt x y => splitAt x y axxu111 x y => u111 x y axxu112 x => u112 x axxu121 x y => u121 x y axxu122 x => u122 x axxu131 x y z => u131 x y z axxu132 x y => u132 x y axxu133 x => u133 x axxu141 x y z => u141 x y z axxu142 x y => u142 x y axxu143 x => u143 x axxu151 x y z => u151 x y z axxu152 x y => u152 x y axxu153 x => u153 x axxu161 x y => u161 x y axxnatsFrom x => natsFrom x axxu171 x y z => u171 x y z axxhead x => head x axxafterNth x y => afterNth x y axxu181 x y => u181 x y axxu191 x y => u191 x y axxu201 x y z u => u201 x y z u axxu202 x y => u202 x y axxu21 x y => u21 x y axxu211 x y => u211 x y axxu221 x y z => u221 x y z axxfst x => fst x axxu31 x y => u31 x y axxu41 x y z => u41 x y z axxu42 x y => u42 x y axxu43 x => u43 x axxu51 x y z => u51 x y z axxu52 x y => u52 x y axxu53 x => u53 x axxu61 x y => u61 x y axxu62 x => u62 x axxisPLNat x => isPLNat x axxu71 x y => u71 x y axxu72 x => u72 x axxu81 x y => u81 x y axxu82 x => u82 x axxu91 x y => u91 x y axxu92 x => u92 x axxand x y => and x y axxisNaturalKind x => isNaturalKind x axxisLNatKind x => isLNatKind x axxisPLNatKind x => isPLNatKind x axxtail x => tail x axxtake x y => take x y axxsel x y => sel x y map (/\x.f x) nil => nil app (/\x.f x) y => f y Using the transformations described in [Kop11], this system can be brought in a form without leading free variables in the left-hand side, and where the left-hand side of a variable is always a functional term or application headed by a functional term. We now transform the resulting AFS into an AFSM by replacing all free variables by meta-variables (with arity 0). This leads to the following AFSM: Alphabet: 0 : [] --> A afterNth : [A * A] --> A and : [A * A] --> A app : [A -> A * A] --> A axxafterNth : [A * A] --> A axxand : [A * A] --> A axxfst : [A] --> A axxhead : [A] --> A axxisLNat : [A] --> A axxisLNatKind : [A] --> A axxisNatural : [A] --> A axxisNaturalKind : [A] --> A axxisPLNat : [A] --> A axxisPLNatKind : [A] --> A axxnatsFrom : [A] --> A axxsel : [A * A] --> A axxsnd : [A] --> A axxsplitAt : [A * A] --> A axxtail : [A] --> A axxtake : [A * A] --> A axxu101 : [A * A * A] --> A axxu102 : [A * A] --> A axxu103 : [A] --> A axxu11 : [A * A * A] --> A axxu111 : [A * A] --> A axxu112 : [A] --> A axxu121 : [A * A] --> A axxu122 : [A] --> A axxu131 : [A * A * A] --> A axxu132 : [A * A] --> A axxu133 : [A] --> A axxu141 : [A * A * A] --> A axxu142 : [A * A] --> A axxu143 : [A] --> A axxu151 : [A * A * A] --> A axxu152 : [A * A] --> A axxu153 : [A] --> A axxu161 : [A * A] --> A axxu171 : [A * A * A] --> A axxu181 : [A * A] --> A axxu191 : [A * A] --> A axxu201 : [A * A * A * A] --> A axxu202 : [A * A] --> A axxu21 : [A * A] --> A axxu211 : [A * A] --> A axxu221 : [A * A * A] --> A axxu31 : [A * A] --> A axxu41 : [A * A * A] --> A axxu42 : [A * A] --> A axxu43 : [A] --> A axxu51 : [A * A * A] --> A axxu52 : [A * A] --> A axxu53 : [A] --> A axxu61 : [A * A] --> A axxu62 : [A] --> A axxu71 : [A * A] --> A axxu72 : [A] --> A axxu81 : [A * A] --> A axxu82 : [A] --> A axxu91 : [A * A] --> A axxu92 : [A] --> A cons : [A * A] --> A fst : [A] --> A head : [A] --> A isLNat : [A] --> A isLNatKind : [A] --> A isNatural : [A] --> A isNaturalKind : [A] --> A isPLNat : [A] --> A isPLNatKind : [A] --> A map : [A -> A * A] --> A mark : [A] --> A natsFrom : [A] --> A nil : [] --> A pair : [A * A] --> A s : [A] --> A sel : [A * A] --> A snd : [A] --> A splitAt : [A * A] --> A tail : [A] --> A take : [A * A] --> A tt : [] --> A u101 : [A * A * A] --> A u102 : [A * A] --> A u103 : [A] --> A u11 : [A * A * A] --> A u111 : [A * A] --> A u112 : [A] --> A u121 : [A * A] --> A u122 : [A] --> A u131 : [A * A * A] --> A u132 : [A * A] --> A u133 : [A] --> A u141 : [A * A * A] --> A u142 : [A * A] --> A u143 : [A] --> A u151 : [A * A * A] --> A u152 : [A * A] --> A u153 : [A] --> A u161 : [A * A] --> A u171 : [A * A * A] --> A u181 : [A * A] --> A u191 : [A * A] --> A u201 : [A * A * A * A] --> A u202 : [A * A] --> A u21 : [A * A] --> A u211 : [A * A] --> A u221 : [A * A * A] --> A u31 : [A * A] --> A u41 : [A * A * A] --> A u42 : [A * A] --> A u43 : [A] --> A u51 : [A * A * A] --> A u52 : [A * A] --> A u53 : [A] --> A u61 : [A * A] --> A u62 : [A] --> A u71 : [A * A] --> A u72 : [A] --> A u81 : [A * A] --> A u82 : [A] --> A u91 : [A * A] --> A u92 : [A] --> A ~AP1 : [A -> A * A] --> A Rules: axxu101(tt, X, Y) => axxu102(axxisNatural(X), Y) axxu102(tt, X) => axxu103(axxisLNat(X)) axxu103(tt) => tt axxu11(tt, X, Y) => axxsnd(axxsplitAt(mark(X), mark(Y))) axxu111(tt, X) => axxu112(axxisLNat(X)) axxu112(tt) => tt axxu121(tt, X) => axxu122(axxisNatural(X)) axxu122(tt) => tt axxu131(tt, X, Y) => axxu132(axxisNatural(X), Y) axxu132(tt, X) => axxu133(axxisLNat(X)) axxu133(tt) => tt axxu141(tt, X, Y) => axxu142(axxisLNat(X), Y) axxu142(tt, X) => axxu143(axxisLNat(X)) axxu143(tt) => tt axxu151(tt, X, Y) => axxu152(axxisNatural(X), Y) axxu152(tt, X) => axxu153(axxisLNat(X)) axxu153(tt) => tt axxu161(tt, X) => cons(mark(X), natsFrom(s(X))) axxu171(tt, X, Y) => axxhead(axxafterNth(mark(X), mark(Y))) axxu181(tt, X) => mark(X) axxu191(tt, X) => pair(nil, mark(X)) axxu201(tt, X, Y, Z) => axxu202(axxsplitAt(mark(X), mark(Z)), Y) axxu202(pair(X, Y), Z) => pair(cons(mark(Z), X), mark(Y)) axxu21(tt, X) => mark(X) axxu211(tt, X) => mark(X) axxu221(tt, X, Y) => axxfst(axxsplitAt(mark(X), mark(Y))) axxu31(tt, X) => mark(X) axxu41(tt, X, Y) => axxu42(axxisNatural(X), Y) axxu42(tt, X) => axxu43(axxisLNat(X)) axxu43(tt) => tt axxu51(tt, X, Y) => axxu52(axxisNatural(X), Y) axxu52(tt, X) => axxu53(axxisLNat(X)) axxu53(tt) => tt axxu61(tt, X) => axxu62(axxisPLNat(X)) axxu62(tt) => tt axxu71(tt, X) => axxu72(axxisNatural(X)) axxu72(tt) => tt axxu81(tt, X) => axxu82(axxisPLNat(X)) axxu82(tt) => tt axxu91(tt, X) => axxu92(axxisLNat(X)) axxu92(tt) => tt axxafterNth(X, Y) => axxu11(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxand(tt, X) => mark(X) axxfst(pair(X, Y)) => axxu21(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxhead(cons(X, Y)) => axxu31(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxisLNat(nil) => tt axxisLNat(afterNth(X, Y)) => axxu41(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(cons(X, Y)) => axxu51(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(fst(X)) => axxu61(axxisPLNatKind(X), X) axxisLNat(natsFrom(X)) => axxu71(axxisNaturalKind(X), X) axxisLNat(snd(X)) => axxu81(axxisPLNatKind(X), X) axxisLNat(tail(X)) => axxu91(axxisLNatKind(X), X) axxisLNat(take(X, Y)) => axxu101(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNatKind(nil) => tt axxisLNatKind(afterNth(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(cons(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(fst(X)) => axxisPLNatKind(X) axxisLNatKind(natsFrom(X)) => axxisNaturalKind(X) axxisLNatKind(snd(X)) => axxisPLNatKind(X) axxisLNatKind(tail(X)) => axxisLNatKind(X) axxisLNatKind(take(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisNatural(0) => tt axxisNatural(head(X)) => axxu111(axxisLNatKind(X), X) axxisNatural(s(X)) => axxu121(axxisNaturalKind(X), X) axxisNatural(sel(X, Y)) => axxu131(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisNaturalKind(0) => tt axxisNaturalKind(head(X)) => axxisLNatKind(X) axxisNaturalKind(s(X)) => axxisNaturalKind(X) axxisNaturalKind(sel(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisPLNat(pair(X, Y)) => axxu141(axxand(axxisLNatKind(X), isLNatKind(Y)), X, Y) axxisPLNat(splitAt(X, Y)) => axxu151(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisPLNatKind(pair(X, Y)) => axxand(axxisLNatKind(X), isLNatKind(Y)) axxisPLNatKind(splitAt(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxnatsFrom(X) => axxu161(axxand(axxisNatural(X), isNaturalKind(X)), X) axxsel(X, Y) => axxu171(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxsnd(pair(X, Y)) => axxu181(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxsplitAt(0, X) => axxu191(axxand(axxisLNat(X), isLNatKind(X)), X) axxsplitAt(s(X), cons(Y, Z)) => axxu201(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(and(isNatural(Y), isNaturalKind(Y)), and(isLNat(Z), isLNatKind(Z)))), X, Y, Z) axxtail(cons(X, Y)) => axxu211(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxtake(X, Y) => axxu221(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) mark(u101(X, Y, Z)) => axxu101(mark(X), Y, Z) mark(u102(X, Y)) => axxu102(mark(X), Y) mark(isNatural(X)) => axxisNatural(X) mark(u103(X)) => axxu103(mark(X)) mark(isLNat(X)) => axxisLNat(X) mark(u11(X, Y, Z)) => axxu11(mark(X), Y, Z) mark(snd(X)) => axxsnd(mark(X)) mark(splitAt(X, Y)) => axxsplitAt(mark(X), mark(Y)) mark(u111(X, Y)) => axxu111(mark(X), Y) mark(u112(X)) => axxu112(mark(X)) mark(u121(X, Y)) => axxu121(mark(X), Y) mark(u122(X)) => axxu122(mark(X)) mark(u131(X, Y, Z)) => axxu131(mark(X), Y, Z) mark(u132(X, Y)) => axxu132(mark(X), Y) mark(u133(X)) => axxu133(mark(X)) mark(u141(X, Y, Z)) => axxu141(mark(X), Y, Z) mark(u142(X, Y)) => axxu142(mark(X), Y) mark(u143(X)) => axxu143(mark(X)) mark(u151(X, Y, Z)) => axxu151(mark(X), Y, Z) mark(u152(X, Y)) => axxu152(mark(X), Y) mark(u153(X)) => axxu153(mark(X)) mark(u161(X, Y)) => axxu161(mark(X), Y) mark(natsFrom(X)) => axxnatsFrom(mark(X)) mark(u171(X, Y, Z)) => axxu171(mark(X), Y, Z) mark(head(X)) => axxhead(mark(X)) mark(afterNth(X, Y)) => axxafterNth(mark(X), mark(Y)) mark(u181(X, Y)) => axxu181(mark(X), Y) mark(u191(X, Y)) => axxu191(mark(X), Y) mark(u201(X, Y, Z, U)) => axxu201(mark(X), Y, Z, U) mark(u202(X, Y)) => axxu202(mark(X), Y) mark(u21(X, Y)) => axxu21(mark(X), Y) mark(u211(X, Y)) => axxu211(mark(X), Y) mark(u221(X, Y, Z)) => axxu221(mark(X), Y, Z) mark(fst(X)) => axxfst(mark(X)) mark(u31(X, Y)) => axxu31(mark(X), Y) mark(u41(X, Y, Z)) => axxu41(mark(X), Y, Z) mark(u42(X, Y)) => axxu42(mark(X), Y) mark(u43(X)) => axxu43(mark(X)) mark(u51(X, Y, Z)) => axxu51(mark(X), Y, Z) mark(u52(X, Y)) => axxu52(mark(X), Y) mark(u53(X)) => axxu53(mark(X)) mark(u61(X, Y)) => axxu61(mark(X), Y) mark(u62(X)) => axxu62(mark(X)) mark(isPLNat(X)) => axxisPLNat(X) mark(u71(X, Y)) => axxu71(mark(X), Y) mark(u72(X)) => axxu72(mark(X)) mark(u81(X, Y)) => axxu81(mark(X), Y) mark(u82(X)) => axxu82(mark(X)) mark(u91(X, Y)) => axxu91(mark(X), Y) mark(u92(X)) => axxu92(mark(X)) mark(and(X, Y)) => axxand(mark(X), Y) mark(isNaturalKind(X)) => axxisNaturalKind(X) mark(isLNatKind(X)) => axxisLNatKind(X) mark(isPLNatKind(X)) => axxisPLNatKind(X) mark(tail(X)) => axxtail(mark(X)) mark(take(X, Y)) => axxtake(mark(X), mark(Y)) mark(sel(X, Y)) => axxsel(mark(X), mark(Y)) mark(tt) => tt mark(cons(X, Y)) => cons(mark(X), Y) mark(s(X)) => s(mark(X)) mark(pair(X, Y)) => pair(mark(X), mark(Y)) mark(nil) => nil mark(0) => 0 axxu101(X, Y, Z) => u101(X, Y, Z) axxu102(X, Y) => u102(X, Y) axxisNatural(X) => isNatural(X) axxu103(X) => u103(X) axxisLNat(X) => isLNat(X) axxu11(X, Y, Z) => u11(X, Y, Z) axxsnd(X) => snd(X) axxsplitAt(X, Y) => splitAt(X, Y) axxu111(X, Y) => u111(X, Y) axxu112(X) => u112(X) axxu121(X, Y) => u121(X, Y) axxu122(X) => u122(X) axxu131(X, Y, Z) => u131(X, Y, Z) axxu132(X, Y) => u132(X, Y) axxu133(X) => u133(X) axxu141(X, Y, Z) => u141(X, Y, Z) axxu142(X, Y) => u142(X, Y) axxu143(X) => u143(X) axxu151(X, Y, Z) => u151(X, Y, Z) axxu152(X, Y) => u152(X, Y) axxu153(X) => u153(X) axxu161(X, Y) => u161(X, Y) axxnatsFrom(X) => natsFrom(X) axxu171(X, Y, Z) => u171(X, Y, Z) axxhead(X) => head(X) axxafterNth(X, Y) => afterNth(X, Y) axxu181(X, Y) => u181(X, Y) axxu191(X, Y) => u191(X, Y) axxu201(X, Y, Z, U) => u201(X, Y, Z, U) axxu202(X, Y) => u202(X, Y) axxu21(X, Y) => u21(X, Y) axxu211(X, Y) => u211(X, Y) axxu221(X, Y, Z) => u221(X, Y, Z) axxfst(X) => fst(X) axxu31(X, Y) => u31(X, Y) axxu41(X, Y, Z) => u41(X, Y, Z) axxu42(X, Y) => u42(X, Y) axxu43(X) => u43(X) axxu51(X, Y, Z) => u51(X, Y, Z) axxu52(X, Y) => u52(X, Y) axxu53(X) => u53(X) axxu61(X, Y) => u61(X, Y) axxu62(X) => u62(X) axxisPLNat(X) => isPLNat(X) axxu71(X, Y) => u71(X, Y) axxu72(X) => u72(X) axxu81(X, Y) => u81(X, Y) axxu82(X) => u82(X) axxu91(X, Y) => u91(X, Y) axxu92(X) => u92(X) axxand(X, Y) => and(X, Y) axxisNaturalKind(X) => isNaturalKind(X) axxisLNatKind(X) => isLNatKind(X) axxisPLNatKind(X) => isPLNatKind(X) axxtail(X) => tail(X) axxtake(X, Y) => take(X, Y) axxsel(X, Y) => sel(X, Y) map(/\x.~AP1(F, x), nil) => nil app(/\x.~AP1(F, x), X) => ~AP1(F, X) map(/\x.afterNth(X, x), nil) => nil map(/\x.and(X, x), nil) => nil map(/\x.app(F, x), nil) => nil map(/\x.axxafterNth(X, x), nil) => nil map(/\x.axxand(X, x), nil) => nil map(/\x.axxfst(x), nil) => nil map(/\x.axxhead(x), nil) => nil map(/\x.axxisLNat(x), nil) => nil map(/\x.axxisLNatKind(x), nil) => nil map(/\x.axxisNatural(x), nil) => nil map(/\x.axxisNaturalKind(x), nil) => nil map(/\x.axxisPLNat(x), nil) => nil map(/\x.axxisPLNatKind(x), nil) => nil map(/\x.axxnatsFrom(x), nil) => nil map(/\x.axxsel(X, x), nil) => nil map(/\x.axxsnd(x), nil) => nil map(/\x.axxsplitAt(X, x), nil) => nil map(/\x.axxtail(x), nil) => nil map(/\x.axxtake(X, x), nil) => nil map(/\x.axxu101(X, Y, x), nil) => nil map(/\x.axxu102(X, x), nil) => nil map(/\x.axxu103(x), nil) => nil map(/\x.axxu11(X, Y, x), nil) => nil map(/\x.axxu111(X, x), nil) => nil map(/\x.axxu112(x), nil) => nil map(/\x.axxu121(X, x), nil) => nil map(/\x.axxu122(x), nil) => nil map(/\x.axxu131(X, Y, x), nil) => nil map(/\x.axxu132(X, x), nil) => nil map(/\x.axxu133(x), nil) => nil map(/\x.axxu141(X, Y, x), nil) => nil map(/\x.axxu142(X, x), nil) => nil map(/\x.axxu143(x), nil) => nil map(/\x.axxu151(X, Y, x), nil) => nil map(/\x.axxu152(X, x), nil) => nil map(/\x.axxu153(x), nil) => nil map(/\x.axxu161(X, x), nil) => nil map(/\x.axxu171(X, Y, x), nil) => nil map(/\x.axxu181(X, x), nil) => nil map(/\x.axxu191(X, x), nil) => nil map(/\x.axxu201(X, Y, Z, x), nil) => nil map(/\x.axxu202(X, x), nil) => nil map(/\x.axxu21(X, x), nil) => nil map(/\x.axxu211(X, x), nil) => nil map(/\x.axxu221(X, Y, x), nil) => nil map(/\x.axxu31(X, x), nil) => nil map(/\x.axxu41(X, Y, x), nil) => nil map(/\x.axxu42(X, x), nil) => nil map(/\x.axxu43(x), nil) => nil map(/\x.axxu51(X, Y, x), nil) => nil map(/\x.axxu52(X, x), nil) => nil map(/\x.axxu53(x), nil) => nil map(/\x.axxu61(X, x), nil) => nil map(/\x.axxu62(x), nil) => nil map(/\x.axxu71(X, x), nil) => nil map(/\x.axxu72(x), nil) => nil map(/\x.axxu81(X, x), nil) => nil map(/\x.axxu82(x), nil) => nil map(/\x.axxu91(X, x), nil) => nil map(/\x.axxu92(x), nil) => nil map(/\x.cons(X, x), nil) => nil map(/\x.fst(x), nil) => nil map(/\x.head(x), nil) => nil map(/\x.isLNat(x), nil) => nil map(/\x.isLNatKind(x), nil) => nil map(/\x.isNatural(x), nil) => nil map(/\x.isNaturalKind(x), nil) => nil map(/\x.isPLNat(x), nil) => nil map(/\x.isPLNatKind(x), nil) => nil map(/\x.map(F, x), nil) => nil map(/\x.mark(x), nil) => nil map(/\x.natsFrom(x), nil) => nil map(/\x.pair(X, x), nil) => nil map(/\x.s(x), nil) => nil map(/\x.sel(X, x), nil) => nil map(/\x.snd(x), nil) => nil map(/\x.splitAt(X, x), nil) => nil map(/\x.tail(x), nil) => nil map(/\x.take(X, x), nil) => nil map(/\x.u101(X, Y, x), nil) => nil map(/\x.u102(X, x), nil) => nil map(/\x.u103(x), nil) => nil map(/\x.u11(X, Y, x), nil) => nil map(/\x.u111(X, x), nil) => nil map(/\x.u112(x), nil) => nil map(/\x.u121(X, x), nil) => nil map(/\x.u122(x), nil) => nil map(/\x.u131(X, Y, x), nil) => nil map(/\x.u132(X, x), nil) => nil map(/\x.u133(x), nil) => nil map(/\x.u141(X, Y, x), nil) => nil map(/\x.u142(X, x), nil) => nil map(/\x.u143(x), nil) => nil map(/\x.u151(X, Y, x), nil) => nil map(/\x.u152(X, x), nil) => nil map(/\x.u153(x), nil) => nil map(/\x.u161(X, x), nil) => nil map(/\x.u171(X, Y, x), nil) => nil map(/\x.u181(X, x), nil) => nil map(/\x.u191(X, x), nil) => nil map(/\x.u201(X, Y, Z, x), nil) => nil map(/\x.u202(X, x), nil) => nil map(/\x.u21(X, x), nil) => nil map(/\x.u211(X, x), nil) => nil map(/\x.u221(X, Y, x), nil) => nil map(/\x.u31(X, x), nil) => nil map(/\x.u41(X, Y, x), nil) => nil map(/\x.u42(X, x), nil) => nil map(/\x.u43(x), nil) => nil map(/\x.u51(X, Y, x), nil) => nil map(/\x.u52(X, x), nil) => nil map(/\x.u53(x), nil) => nil map(/\x.u61(X, x), nil) => nil map(/\x.u62(x), nil) => nil map(/\x.u71(X, x), nil) => nil map(/\x.u72(x), nil) => nil map(/\x.u81(X, x), nil) => nil map(/\x.u82(x), nil) => nil map(/\x.u91(X, x), nil) => nil map(/\x.u92(x), nil) => nil app(/\x.afterNth(X, x), Y) => afterNth(X, Y) app(/\x.and(X, x), Y) => and(X, Y) app(/\x.app(F, x), X) => app(F, X) app(/\x.axxafterNth(X, x), Y) => axxafterNth(X, Y) app(/\x.axxand(X, x), Y) => axxand(X, Y) app(/\x.axxfst(x), X) => axxfst(X) app(/\x.axxhead(x), X) => axxhead(X) app(/\x.axxisLNat(x), X) => axxisLNat(X) app(/\x.axxisLNatKind(x), X) => axxisLNatKind(X) app(/\x.axxisNatural(x), X) => axxisNatural(X) app(/\x.axxisNaturalKind(x), X) => axxisNaturalKind(X) app(/\x.axxisPLNat(x), X) => axxisPLNat(X) app(/\x.axxisPLNatKind(x), X) => axxisPLNatKind(X) app(/\x.axxnatsFrom(x), X) => axxnatsFrom(X) app(/\x.axxsel(X, x), Y) => axxsel(X, Y) app(/\x.axxsnd(x), X) => axxsnd(X) app(/\x.axxsplitAt(X, x), Y) => axxsplitAt(X, Y) app(/\x.axxtail(x), X) => axxtail(X) app(/\x.axxtake(X, x), Y) => axxtake(X, Y) app(/\x.axxu101(X, Y, x), Z) => axxu101(X, Y, Z) app(/\x.axxu102(X, x), Y) => axxu102(X, Y) app(/\x.axxu103(x), X) => axxu103(X) app(/\x.axxu11(X, Y, x), Z) => axxu11(X, Y, Z) app(/\x.axxu111(X, x), Y) => axxu111(X, Y) app(/\x.axxu112(x), X) => axxu112(X) app(/\x.axxu121(X, x), Y) => axxu121(X, Y) app(/\x.axxu122(x), X) => axxu122(X) app(/\x.axxu131(X, Y, x), Z) => axxu131(X, Y, Z) app(/\x.axxu132(X, x), Y) => axxu132(X, Y) app(/\x.axxu133(x), X) => axxu133(X) app(/\x.axxu141(X, Y, x), Z) => axxu141(X, Y, Z) app(/\x.axxu142(X, x), Y) => axxu142(X, Y) app(/\x.axxu143(x), X) => axxu143(X) app(/\x.axxu151(X, Y, x), Z) => axxu151(X, Y, Z) app(/\x.axxu152(X, x), Y) => axxu152(X, Y) app(/\x.axxu153(x), X) => axxu153(X) app(/\x.axxu161(X, x), Y) => axxu161(X, Y) app(/\x.axxu171(X, Y, x), Z) => axxu171(X, Y, Z) app(/\x.axxu181(X, x), Y) => axxu181(X, Y) app(/\x.axxu191(X, x), Y) => axxu191(X, Y) app(/\x.axxu201(X, Y, Z, x), U) => axxu201(X, Y, Z, U) app(/\x.axxu202(X, x), Y) => axxu202(X, Y) app(/\x.axxu21(X, x), Y) => axxu21(X, Y) app(/\x.axxu211(X, x), Y) => axxu211(X, Y) app(/\x.axxu221(X, Y, x), Z) => axxu221(X, Y, Z) app(/\x.axxu31(X, x), Y) => axxu31(X, Y) app(/\x.axxu41(X, Y, x), Z) => axxu41(X, Y, Z) app(/\x.axxu42(X, x), Y) => axxu42(X, Y) app(/\x.axxu43(x), X) => axxu43(X) app(/\x.axxu51(X, Y, x), Z) => axxu51(X, Y, Z) app(/\x.axxu52(X, x), Y) => axxu52(X, Y) app(/\x.axxu53(x), X) => axxu53(X) app(/\x.axxu61(X, x), Y) => axxu61(X, Y) app(/\x.axxu62(x), X) => axxu62(X) app(/\x.axxu71(X, x), Y) => axxu71(X, Y) app(/\x.axxu72(x), X) => axxu72(X) app(/\x.axxu81(X, x), Y) => axxu81(X, Y) app(/\x.axxu82(x), X) => axxu82(X) app(/\x.axxu91(X, x), Y) => axxu91(X, Y) app(/\x.axxu92(x), X) => axxu92(X) app(/\x.cons(X, x), Y) => cons(X, Y) app(/\x.fst(x), X) => fst(X) app(/\x.head(x), X) => head(X) app(/\x.isLNat(x), X) => isLNat(X) app(/\x.isLNatKind(x), X) => isLNatKind(X) app(/\x.isNatural(x), X) => isNatural(X) app(/\x.isNaturalKind(x), X) => isNaturalKind(X) app(/\x.isPLNat(x), X) => isPLNat(X) app(/\x.isPLNatKind(x), X) => isPLNatKind(X) app(/\x.map(F, x), X) => map(F, X) app(/\x.mark(x), X) => mark(X) app(/\x.natsFrom(x), X) => natsFrom(X) app(/\x.pair(X, x), Y) => pair(X, Y) app(/\x.s(x), X) => s(X) app(/\x.sel(X, x), Y) => sel(X, Y) app(/\x.snd(x), X) => snd(X) app(/\x.splitAt(X, x), Y) => splitAt(X, Y) app(/\x.tail(x), X) => tail(X) app(/\x.take(X, x), Y) => take(X, Y) app(/\x.u101(X, Y, x), Z) => u101(X, Y, Z) app(/\x.u102(X, x), Y) => u102(X, Y) app(/\x.u103(x), X) => u103(X) app(/\x.u11(X, Y, x), Z) => u11(X, Y, Z) app(/\x.u111(X, x), Y) => u111(X, Y) app(/\x.u112(x), X) => u112(X) app(/\x.u121(X, x), Y) => u121(X, Y) app(/\x.u122(x), X) => u122(X) app(/\x.u131(X, Y, x), Z) => u131(X, Y, Z) app(/\x.u132(X, x), Y) => u132(X, Y) app(/\x.u133(x), X) => u133(X) app(/\x.u141(X, Y, x), Z) => u141(X, Y, Z) app(/\x.u142(X, x), Y) => u142(X, Y) app(/\x.u143(x), X) => u143(X) app(/\x.u151(X, Y, x), Z) => u151(X, Y, Z) app(/\x.u152(X, x), Y) => u152(X, Y) app(/\x.u153(x), X) => u153(X) app(/\x.u161(X, x), Y) => u161(X, Y) app(/\x.u171(X, Y, x), Z) => u171(X, Y, Z) app(/\x.u181(X, x), Y) => u181(X, Y) app(/\x.u191(X, x), Y) => u191(X, Y) app(/\x.u201(X, Y, Z, x), U) => u201(X, Y, Z, U) app(/\x.u202(X, x), Y) => u202(X, Y) app(/\x.u21(X, x), Y) => u21(X, Y) app(/\x.u211(X, x), Y) => u211(X, Y) app(/\x.u221(X, Y, x), Z) => u221(X, Y, Z) app(/\x.u31(X, x), Y) => u31(X, Y) app(/\x.u41(X, Y, x), Z) => u41(X, Y, Z) app(/\x.u42(X, x), Y) => u42(X, Y) app(/\x.u43(x), X) => u43(X) app(/\x.u51(X, Y, x), Z) => u51(X, Y, Z) app(/\x.u52(X, x), Y) => u52(X, Y) app(/\x.u53(x), X) => u53(X) app(/\x.u61(X, x), Y) => u61(X, Y) app(/\x.u62(x), X) => u62(X) app(/\x.u71(X, x), Y) => u71(X, Y) app(/\x.u72(x), X) => u72(X) app(/\x.u81(X, x), Y) => u81(X, Y) app(/\x.u82(x), X) => u82(X) app(/\x.u91(X, x), Y) => u91(X, Y) app(/\x.u92(x), X) => u92(X) ~AP1(F, X) => F X Symbol ~AP1 is an encoding for application that is only used in innocuous ways. We can simplify the program (without losing non-termination) by removing it. Additionally, we can remove some (now-)redundant rules. This gives: Alphabet: 0 : [] --> A afterNth : [A * A] --> A and : [A * A] --> A app : [A -> A * A] --> A axxafterNth : [A * A] --> A axxand : [A * A] --> A axxfst : [A] --> A axxhead : [A] --> A axxisLNat : [A] --> A axxisLNatKind : [A] --> A axxisNatural : [A] --> A axxisNaturalKind : [A] --> A axxisPLNat : [A] --> A axxisPLNatKind : [A] --> A axxnatsFrom : [A] --> A axxsel : [A * A] --> A axxsnd : [A] --> A axxsplitAt : [A * A] --> A axxtail : [A] --> A axxtake : [A * A] --> A axxu101 : [A * A * A] --> A axxu102 : [A * A] --> A axxu103 : [A] --> A axxu11 : [A * A * A] --> A axxu111 : [A * A] --> A axxu112 : [A] --> A axxu121 : [A * A] --> A axxu122 : [A] --> A axxu131 : [A * A * A] --> A axxu132 : [A * A] --> A axxu133 : [A] --> A axxu141 : [A * A * A] --> A axxu142 : [A * A] --> A axxu143 : [A] --> A axxu151 : [A * A * A] --> A axxu152 : [A * A] --> A axxu153 : [A] --> A axxu161 : [A * A] --> A axxu171 : [A * A * A] --> A axxu181 : [A * A] --> A axxu191 : [A * A] --> A axxu201 : [A * A * A * A] --> A axxu202 : [A * A] --> A axxu21 : [A * A] --> A axxu211 : [A * A] --> A axxu221 : [A * A * A] --> A axxu31 : [A * A] --> A axxu41 : [A * A * A] --> A axxu42 : [A * A] --> A axxu43 : [A] --> A axxu51 : [A * A * A] --> A axxu52 : [A * A] --> A axxu53 : [A] --> A axxu61 : [A * A] --> A axxu62 : [A] --> A axxu71 : [A * A] --> A axxu72 : [A] --> A axxu81 : [A * A] --> A axxu82 : [A] --> A axxu91 : [A * A] --> A axxu92 : [A] --> A cons : [A * A] --> A fst : [A] --> A head : [A] --> A isLNat : [A] --> A isLNatKind : [A] --> A isNatural : [A] --> A isNaturalKind : [A] --> A isPLNat : [A] --> A isPLNatKind : [A] --> A map : [A -> A * A] --> A mark : [A] --> A natsFrom : [A] --> A nil : [] --> A pair : [A * A] --> A s : [A] --> A sel : [A * A] --> A snd : [A] --> A splitAt : [A * A] --> A tail : [A] --> A take : [A * A] --> A tt : [] --> A u101 : [A * A * A] --> A u102 : [A * A] --> A u103 : [A] --> A u11 : [A * A * A] --> A u111 : [A * A] --> A u112 : [A] --> A u121 : [A * A] --> A u122 : [A] --> A u131 : [A * A * A] --> A u132 : [A * A] --> A u133 : [A] --> A u141 : [A * A * A] --> A u142 : [A * A] --> A u143 : [A] --> A u151 : [A * A * A] --> A u152 : [A * A] --> A u153 : [A] --> A u161 : [A * A] --> A u171 : [A * A * A] --> A u181 : [A * A] --> A u191 : [A * A] --> A u201 : [A * A * A * A] --> A u202 : [A * A] --> A u21 : [A * A] --> A u211 : [A * A] --> A u221 : [A * A * A] --> A u31 : [A * A] --> A u41 : [A * A * A] --> A u42 : [A * A] --> A u43 : [A] --> A u51 : [A * A * A] --> A u52 : [A * A] --> A u53 : [A] --> A u61 : [A * A] --> A u62 : [A] --> A u71 : [A * A] --> A u72 : [A] --> A u81 : [A * A] --> A u82 : [A] --> A u91 : [A * A] --> A u92 : [A] --> A Rules: axxu101(tt, X, Y) => axxu102(axxisNatural(X), Y) axxu102(tt, X) => axxu103(axxisLNat(X)) axxu103(tt) => tt axxu11(tt, X, Y) => axxsnd(axxsplitAt(mark(X), mark(Y))) axxu111(tt, X) => axxu112(axxisLNat(X)) axxu112(tt) => tt axxu121(tt, X) => axxu122(axxisNatural(X)) axxu122(tt) => tt axxu131(tt, X, Y) => axxu132(axxisNatural(X), Y) axxu132(tt, X) => axxu133(axxisLNat(X)) axxu133(tt) => tt axxu141(tt, X, Y) => axxu142(axxisLNat(X), Y) axxu142(tt, X) => axxu143(axxisLNat(X)) axxu143(tt) => tt axxu151(tt, X, Y) => axxu152(axxisNatural(X), Y) axxu152(tt, X) => axxu153(axxisLNat(X)) axxu153(tt) => tt axxu161(tt, X) => cons(mark(X), natsFrom(s(X))) axxu171(tt, X, Y) => axxhead(axxafterNth(mark(X), mark(Y))) axxu181(tt, X) => mark(X) axxu191(tt, X) => pair(nil, mark(X)) axxu201(tt, X, Y, Z) => axxu202(axxsplitAt(mark(X), mark(Z)), Y) axxu202(pair(X, Y), Z) => pair(cons(mark(Z), X), mark(Y)) axxu21(tt, X) => mark(X) axxu211(tt, X) => mark(X) axxu221(tt, X, Y) => axxfst(axxsplitAt(mark(X), mark(Y))) axxu31(tt, X) => mark(X) axxu41(tt, X, Y) => axxu42(axxisNatural(X), Y) axxu42(tt, X) => axxu43(axxisLNat(X)) axxu43(tt) => tt axxu51(tt, X, Y) => axxu52(axxisNatural(X), Y) axxu52(tt, X) => axxu53(axxisLNat(X)) axxu53(tt) => tt axxu61(tt, X) => axxu62(axxisPLNat(X)) axxu62(tt) => tt axxu71(tt, X) => axxu72(axxisNatural(X)) axxu72(tt) => tt axxu81(tt, X) => axxu82(axxisPLNat(X)) axxu82(tt) => tt axxu91(tt, X) => axxu92(axxisLNat(X)) axxu92(tt) => tt axxafterNth(X, Y) => axxu11(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxand(tt, X) => mark(X) axxfst(pair(X, Y)) => axxu21(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxhead(cons(X, Y)) => axxu31(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxisLNat(nil) => tt axxisLNat(afterNth(X, Y)) => axxu41(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(cons(X, Y)) => axxu51(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(fst(X)) => axxu61(axxisPLNatKind(X), X) axxisLNat(natsFrom(X)) => axxu71(axxisNaturalKind(X), X) axxisLNat(snd(X)) => axxu81(axxisPLNatKind(X), X) axxisLNat(tail(X)) => axxu91(axxisLNatKind(X), X) axxisLNat(take(X, Y)) => axxu101(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNatKind(nil) => tt axxisLNatKind(afterNth(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(cons(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(fst(X)) => axxisPLNatKind(X) axxisLNatKind(natsFrom(X)) => axxisNaturalKind(X) axxisLNatKind(snd(X)) => axxisPLNatKind(X) axxisLNatKind(tail(X)) => axxisLNatKind(X) axxisLNatKind(take(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisNatural(0) => tt axxisNatural(head(X)) => axxu111(axxisLNatKind(X), X) axxisNatural(s(X)) => axxu121(axxisNaturalKind(X), X) axxisNatural(sel(X, Y)) => axxu131(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisNaturalKind(0) => tt axxisNaturalKind(head(X)) => axxisLNatKind(X) axxisNaturalKind(s(X)) => axxisNaturalKind(X) axxisNaturalKind(sel(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisPLNat(pair(X, Y)) => axxu141(axxand(axxisLNatKind(X), isLNatKind(Y)), X, Y) axxisPLNat(splitAt(X, Y)) => axxu151(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisPLNatKind(pair(X, Y)) => axxand(axxisLNatKind(X), isLNatKind(Y)) axxisPLNatKind(splitAt(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxnatsFrom(X) => axxu161(axxand(axxisNatural(X), isNaturalKind(X)), X) axxsel(X, Y) => axxu171(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxsnd(pair(X, Y)) => axxu181(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxsplitAt(0, X) => axxu191(axxand(axxisLNat(X), isLNatKind(X)), X) axxsplitAt(s(X), cons(Y, Z)) => axxu201(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(and(isNatural(Y), isNaturalKind(Y)), and(isLNat(Z), isLNatKind(Z)))), X, Y, Z) axxtail(cons(X, Y)) => axxu211(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxtake(X, Y) => axxu221(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) mark(u101(X, Y, Z)) => axxu101(mark(X), Y, Z) mark(u102(X, Y)) => axxu102(mark(X), Y) mark(isNatural(X)) => axxisNatural(X) mark(u103(X)) => axxu103(mark(X)) mark(isLNat(X)) => axxisLNat(X) mark(u11(X, Y, Z)) => axxu11(mark(X), Y, Z) mark(snd(X)) => axxsnd(mark(X)) mark(splitAt(X, Y)) => axxsplitAt(mark(X), mark(Y)) mark(u111(X, Y)) => axxu111(mark(X), Y) mark(u112(X)) => axxu112(mark(X)) mark(u121(X, Y)) => axxu121(mark(X), Y) mark(u122(X)) => axxu122(mark(X)) mark(u131(X, Y, Z)) => axxu131(mark(X), Y, Z) mark(u132(X, Y)) => axxu132(mark(X), Y) mark(u133(X)) => axxu133(mark(X)) mark(u141(X, Y, Z)) => axxu141(mark(X), Y, Z) mark(u142(X, Y)) => axxu142(mark(X), Y) mark(u143(X)) => axxu143(mark(X)) mark(u151(X, Y, Z)) => axxu151(mark(X), Y, Z) mark(u152(X, Y)) => axxu152(mark(X), Y) mark(u153(X)) => axxu153(mark(X)) mark(u161(X, Y)) => axxu161(mark(X), Y) mark(natsFrom(X)) => axxnatsFrom(mark(X)) mark(u171(X, Y, Z)) => axxu171(mark(X), Y, Z) mark(head(X)) => axxhead(mark(X)) mark(afterNth(X, Y)) => axxafterNth(mark(X), mark(Y)) mark(u181(X, Y)) => axxu181(mark(X), Y) mark(u191(X, Y)) => axxu191(mark(X), Y) mark(u201(X, Y, Z, U)) => axxu201(mark(X), Y, Z, U) mark(u202(X, Y)) => axxu202(mark(X), Y) mark(u21(X, Y)) => axxu21(mark(X), Y) mark(u211(X, Y)) => axxu211(mark(X), Y) mark(u221(X, Y, Z)) => axxu221(mark(X), Y, Z) mark(fst(X)) => axxfst(mark(X)) mark(u31(X, Y)) => axxu31(mark(X), Y) mark(u41(X, Y, Z)) => axxu41(mark(X), Y, Z) mark(u42(X, Y)) => axxu42(mark(X), Y) mark(u43(X)) => axxu43(mark(X)) mark(u51(X, Y, Z)) => axxu51(mark(X), Y, Z) mark(u52(X, Y)) => axxu52(mark(X), Y) mark(u53(X)) => axxu53(mark(X)) mark(u61(X, Y)) => axxu61(mark(X), Y) mark(u62(X)) => axxu62(mark(X)) mark(isPLNat(X)) => axxisPLNat(X) mark(u71(X, Y)) => axxu71(mark(X), Y) mark(u72(X)) => axxu72(mark(X)) mark(u81(X, Y)) => axxu81(mark(X), Y) mark(u82(X)) => axxu82(mark(X)) mark(u91(X, Y)) => axxu91(mark(X), Y) mark(u92(X)) => axxu92(mark(X)) mark(and(X, Y)) => axxand(mark(X), Y) mark(isNaturalKind(X)) => axxisNaturalKind(X) mark(isLNatKind(X)) => axxisLNatKind(X) mark(isPLNatKind(X)) => axxisPLNatKind(X) mark(tail(X)) => axxtail(mark(X)) mark(take(X, Y)) => axxtake(mark(X), mark(Y)) mark(sel(X, Y)) => axxsel(mark(X), mark(Y)) mark(tt) => tt mark(cons(X, Y)) => cons(mark(X), Y) mark(s(X)) => s(mark(X)) mark(pair(X, Y)) => pair(mark(X), mark(Y)) mark(nil) => nil mark(0) => 0 axxu101(X, Y, Z) => u101(X, Y, Z) axxu102(X, Y) => u102(X, Y) axxisNatural(X) => isNatural(X) axxu103(X) => u103(X) axxisLNat(X) => isLNat(X) axxu11(X, Y, Z) => u11(X, Y, Z) axxsnd(X) => snd(X) axxsplitAt(X, Y) => splitAt(X, Y) axxu111(X, Y) => u111(X, Y) axxu112(X) => u112(X) axxu121(X, Y) => u121(X, Y) axxu122(X) => u122(X) axxu131(X, Y, Z) => u131(X, Y, Z) axxu132(X, Y) => u132(X, Y) axxu133(X) => u133(X) axxu141(X, Y, Z) => u141(X, Y, Z) axxu142(X, Y) => u142(X, Y) axxu143(X) => u143(X) axxu151(X, Y, Z) => u151(X, Y, Z) axxu152(X, Y) => u152(X, Y) axxu153(X) => u153(X) axxu161(X, Y) => u161(X, Y) axxnatsFrom(X) => natsFrom(X) axxu171(X, Y, Z) => u171(X, Y, Z) axxhead(X) => head(X) axxafterNth(X, Y) => afterNth(X, Y) axxu181(X, Y) => u181(X, Y) axxu191(X, Y) => u191(X, Y) axxu201(X, Y, Z, U) => u201(X, Y, Z, U) axxu202(X, Y) => u202(X, Y) axxu21(X, Y) => u21(X, Y) axxu211(X, Y) => u211(X, Y) axxu221(X, Y, Z) => u221(X, Y, Z) axxfst(X) => fst(X) axxu31(X, Y) => u31(X, Y) axxu41(X, Y, Z) => u41(X, Y, Z) axxu42(X, Y) => u42(X, Y) axxu43(X) => u43(X) axxu51(X, Y, Z) => u51(X, Y, Z) axxu52(X, Y) => u52(X, Y) axxu53(X) => u53(X) axxu61(X, Y) => u61(X, Y) axxu62(X) => u62(X) axxisPLNat(X) => isPLNat(X) axxu71(X, Y) => u71(X, Y) axxu72(X) => u72(X) axxu81(X, Y) => u81(X, Y) axxu82(X) => u82(X) axxu91(X, Y) => u91(X, Y) axxu92(X) => u92(X) axxand(X, Y) => and(X, Y) axxisNaturalKind(X) => isNaturalKind(X) axxisLNatKind(X) => isLNatKind(X) axxisPLNatKind(X) => isPLNatKind(X) axxtail(X) => tail(X) axxtake(X, Y) => take(X, Y) axxsel(X, Y) => sel(X, Y) map(/\x.X(x), nil) => nil app(/\x.X(x), Y) => X(Y) We observe that the rules contain a first-order subset: axxu101(tt, X, Y) => axxu102(axxisNatural(X), Y) axxu102(tt, X) => axxu103(axxisLNat(X)) axxu103(tt) => tt axxu11(tt, X, Y) => axxsnd(axxsplitAt(mark(X), mark(Y))) axxu111(tt, X) => axxu112(axxisLNat(X)) axxu112(tt) => tt axxu121(tt, X) => axxu122(axxisNatural(X)) axxu122(tt) => tt axxu131(tt, X, Y) => axxu132(axxisNatural(X), Y) axxu132(tt, X) => axxu133(axxisLNat(X)) axxu133(tt) => tt axxu141(tt, X, Y) => axxu142(axxisLNat(X), Y) axxu142(tt, X) => axxu143(axxisLNat(X)) axxu143(tt) => tt axxu151(tt, X, Y) => axxu152(axxisNatural(X), Y) axxu152(tt, X) => axxu153(axxisLNat(X)) axxu153(tt) => tt axxu161(tt, X) => cons(mark(X), natsFrom(s(X))) axxu171(tt, X, Y) => axxhead(axxafterNth(mark(X), mark(Y))) axxu181(tt, X) => mark(X) axxu191(tt, X) => pair(nil, mark(X)) axxu201(tt, X, Y, Z) => axxu202(axxsplitAt(mark(X), mark(Z)), Y) axxu202(pair(X, Y), Z) => pair(cons(mark(Z), X), mark(Y)) axxu21(tt, X) => mark(X) axxu211(tt, X) => mark(X) axxu221(tt, X, Y) => axxfst(axxsplitAt(mark(X), mark(Y))) axxu31(tt, X) => mark(X) axxu41(tt, X, Y) => axxu42(axxisNatural(X), Y) axxu42(tt, X) => axxu43(axxisLNat(X)) axxu43(tt) => tt axxu51(tt, X, Y) => axxu52(axxisNatural(X), Y) axxu52(tt, X) => axxu53(axxisLNat(X)) axxu53(tt) => tt axxu61(tt, X) => axxu62(axxisPLNat(X)) axxu62(tt) => tt axxu71(tt, X) => axxu72(axxisNatural(X)) axxu72(tt) => tt axxu81(tt, X) => axxu82(axxisPLNat(X)) axxu82(tt) => tt axxu91(tt, X) => axxu92(axxisLNat(X)) axxu92(tt) => tt axxafterNth(X, Y) => axxu11(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxand(tt, X) => mark(X) axxfst(pair(X, Y)) => axxu21(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxhead(cons(X, Y)) => axxu31(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxisLNat(nil) => tt axxisLNat(afterNth(X, Y)) => axxu41(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(cons(X, Y)) => axxu51(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(fst(X)) => axxu61(axxisPLNatKind(X), X) axxisLNat(natsFrom(X)) => axxu71(axxisNaturalKind(X), X) axxisLNat(snd(X)) => axxu81(axxisPLNatKind(X), X) axxisLNat(tail(X)) => axxu91(axxisLNatKind(X), X) axxisLNat(take(X, Y)) => axxu101(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNatKind(nil) => tt axxisLNatKind(afterNth(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(cons(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(fst(X)) => axxisPLNatKind(X) axxisLNatKind(natsFrom(X)) => axxisNaturalKind(X) axxisLNatKind(snd(X)) => axxisPLNatKind(X) axxisLNatKind(tail(X)) => axxisLNatKind(X) axxisLNatKind(take(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisNatural(0) => tt axxisNatural(head(X)) => axxu111(axxisLNatKind(X), X) axxisNatural(s(X)) => axxu121(axxisNaturalKind(X), X) axxisNatural(sel(X, Y)) => axxu131(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisNaturalKind(0) => tt axxisNaturalKind(head(X)) => axxisLNatKind(X) axxisNaturalKind(s(X)) => axxisNaturalKind(X) axxisNaturalKind(sel(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisPLNat(pair(X, Y)) => axxu141(axxand(axxisLNatKind(X), isLNatKind(Y)), X, Y) axxisPLNat(splitAt(X, Y)) => axxu151(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisPLNatKind(pair(X, Y)) => axxand(axxisLNatKind(X), isLNatKind(Y)) axxisPLNatKind(splitAt(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxnatsFrom(X) => axxu161(axxand(axxisNatural(X), isNaturalKind(X)), X) axxsel(X, Y) => axxu171(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxsnd(pair(X, Y)) => axxu181(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxsplitAt(0, X) => axxu191(axxand(axxisLNat(X), isLNatKind(X)), X) axxsplitAt(s(X), cons(Y, Z)) => axxu201(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(and(isNatural(Y), isNaturalKind(Y)), and(isLNat(Z), isLNatKind(Z)))), X, Y, Z) axxtail(cons(X, Y)) => axxu211(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxtake(X, Y) => axxu221(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) mark(u101(X, Y, Z)) => axxu101(mark(X), Y, Z) mark(u102(X, Y)) => axxu102(mark(X), Y) mark(isNatural(X)) => axxisNatural(X) mark(u103(X)) => axxu103(mark(X)) mark(isLNat(X)) => axxisLNat(X) mark(u11(X, Y, Z)) => axxu11(mark(X), Y, Z) mark(snd(X)) => axxsnd(mark(X)) mark(splitAt(X, Y)) => axxsplitAt(mark(X), mark(Y)) mark(u111(X, Y)) => axxu111(mark(X), Y) mark(u112(X)) => axxu112(mark(X)) mark(u121(X, Y)) => axxu121(mark(X), Y) mark(u122(X)) => axxu122(mark(X)) mark(u131(X, Y, Z)) => axxu131(mark(X), Y, Z) mark(u132(X, Y)) => axxu132(mark(X), Y) mark(u133(X)) => axxu133(mark(X)) mark(u141(X, Y, Z)) => axxu141(mark(X), Y, Z) mark(u142(X, Y)) => axxu142(mark(X), Y) mark(u143(X)) => axxu143(mark(X)) mark(u151(X, Y, Z)) => axxu151(mark(X), Y, Z) mark(u152(X, Y)) => axxu152(mark(X), Y) mark(u153(X)) => axxu153(mark(X)) mark(u161(X, Y)) => axxu161(mark(X), Y) mark(natsFrom(X)) => axxnatsFrom(mark(X)) mark(u171(X, Y, Z)) => axxu171(mark(X), Y, Z) mark(head(X)) => axxhead(mark(X)) mark(afterNth(X, Y)) => axxafterNth(mark(X), mark(Y)) mark(u181(X, Y)) => axxu181(mark(X), Y) mark(u191(X, Y)) => axxu191(mark(X), Y) mark(u201(X, Y, Z, U)) => axxu201(mark(X), Y, Z, U) mark(u202(X, Y)) => axxu202(mark(X), Y) mark(u21(X, Y)) => axxu21(mark(X), Y) mark(u211(X, Y)) => axxu211(mark(X), Y) mark(u221(X, Y, Z)) => axxu221(mark(X), Y, Z) mark(fst(X)) => axxfst(mark(X)) mark(u31(X, Y)) => axxu31(mark(X), Y) mark(u41(X, Y, Z)) => axxu41(mark(X), Y, Z) mark(u42(X, Y)) => axxu42(mark(X), Y) mark(u43(X)) => axxu43(mark(X)) mark(u51(X, Y, Z)) => axxu51(mark(X), Y, Z) mark(u52(X, Y)) => axxu52(mark(X), Y) mark(u53(X)) => axxu53(mark(X)) mark(u61(X, Y)) => axxu61(mark(X), Y) mark(u62(X)) => axxu62(mark(X)) mark(isPLNat(X)) => axxisPLNat(X) mark(u71(X, Y)) => axxu71(mark(X), Y) mark(u72(X)) => axxu72(mark(X)) mark(u81(X, Y)) => axxu81(mark(X), Y) mark(u82(X)) => axxu82(mark(X)) mark(u91(X, Y)) => axxu91(mark(X), Y) mark(u92(X)) => axxu92(mark(X)) mark(and(X, Y)) => axxand(mark(X), Y) mark(isNaturalKind(X)) => axxisNaturalKind(X) mark(isLNatKind(X)) => axxisLNatKind(X) mark(isPLNatKind(X)) => axxisPLNatKind(X) mark(tail(X)) => axxtail(mark(X)) mark(take(X, Y)) => axxtake(mark(X), mark(Y)) mark(sel(X, Y)) => axxsel(mark(X), mark(Y)) mark(tt) => tt mark(cons(X, Y)) => cons(mark(X), Y) mark(s(X)) => s(mark(X)) mark(pair(X, Y)) => pair(mark(X), mark(Y)) mark(nil) => nil mark(0) => 0 axxu101(X, Y, Z) => u101(X, Y, Z) axxu102(X, Y) => u102(X, Y) axxisNatural(X) => isNatural(X) axxu103(X) => u103(X) axxisLNat(X) => isLNat(X) axxu11(X, Y, Z) => u11(X, Y, Z) axxsnd(X) => snd(X) axxsplitAt(X, Y) => splitAt(X, Y) axxu111(X, Y) => u111(X, Y) axxu112(X) => u112(X) axxu121(X, Y) => u121(X, Y) axxu122(X) => u122(X) axxu131(X, Y, Z) => u131(X, Y, Z) axxu132(X, Y) => u132(X, Y) axxu133(X) => u133(X) axxu141(X, Y, Z) => u141(X, Y, Z) axxu142(X, Y) => u142(X, Y) axxu143(X) => u143(X) axxu151(X, Y, Z) => u151(X, Y, Z) axxu152(X, Y) => u152(X, Y) axxu153(X) => u153(X) axxu161(X, Y) => u161(X, Y) axxnatsFrom(X) => natsFrom(X) axxu171(X, Y, Z) => u171(X, Y, Z) axxhead(X) => head(X) axxafterNth(X, Y) => afterNth(X, Y) axxu181(X, Y) => u181(X, Y) axxu191(X, Y) => u191(X, Y) axxu201(X, Y, Z, U) => u201(X, Y, Z, U) axxu202(X, Y) => u202(X, Y) axxu21(X, Y) => u21(X, Y) axxu211(X, Y) => u211(X, Y) axxu221(X, Y, Z) => u221(X, Y, Z) axxfst(X) => fst(X) axxu31(X, Y) => u31(X, Y) axxu41(X, Y, Z) => u41(X, Y, Z) axxu42(X, Y) => u42(X, Y) axxu43(X) => u43(X) axxu51(X, Y, Z) => u51(X, Y, Z) axxu52(X, Y) => u52(X, Y) axxu53(X) => u53(X) axxu61(X, Y) => u61(X, Y) axxu62(X) => u62(X) axxisPLNat(X) => isPLNat(X) axxu71(X, Y) => u71(X, Y) axxu72(X) => u72(X) axxu81(X, Y) => u81(X, Y) axxu82(X) => u82(X) axxu91(X, Y) => u91(X, Y) axxu92(X) => u92(X) axxand(X, Y) => and(X, Y) axxisNaturalKind(X) => isNaturalKind(X) axxisLNatKind(X) => isLNatKind(X) axxisPLNatKind(X) => isPLNatKind(X) axxtail(X) => tail(X) axxtake(X, Y) => take(X, Y) axxsel(X, Y) => sel(X, Y) Moreover, the system is finitely branching. Thus, by [Kop12, Thm. 7.55], we may omit all first-order dependency pairs from the dependency pair problem (DP(R), R) if this first-order part is Ce-terminating when seen as a many-sorted first-order TRS. According to the external first-order termination prover, this system is indeed Ce-terminating: || Input TRS: || 1: axxu101(tt(),PeRCenTX,PeRCenTY) -> axxu102(axxisNatural(PeRCenTX),PeRCenTY) || 2: axxu102(tt(),PeRCenTX) -> axxu103(axxisLNat(PeRCenTX)) || 3: axxu103(tt()) -> tt() || 4: axxu11(tt(),PeRCenTX,PeRCenTY) -> axxsnd(axxsplitAt(mark(PeRCenTX),mark(PeRCenTY))) || 5: axxu111(tt(),PeRCenTX) -> axxu112(axxisLNat(PeRCenTX)) || 6: axxu112(tt()) -> tt() || 7: axxu121(tt(),PeRCenTX) -> axxu122(axxisNatural(PeRCenTX)) || 8: axxu122(tt()) -> tt() || 9: axxu131(tt(),PeRCenTX,PeRCenTY) -> axxu132(axxisNatural(PeRCenTX),PeRCenTY) || 10: axxu132(tt(),PeRCenTX) -> axxu133(axxisLNat(PeRCenTX)) || 11: axxu133(tt()) -> tt() || 12: axxu141(tt(),PeRCenTX,PeRCenTY) -> axxu142(axxisLNat(PeRCenTX),PeRCenTY) || 13: axxu142(tt(),PeRCenTX) -> axxu143(axxisLNat(PeRCenTX)) || 14: axxu143(tt()) -> tt() || 15: axxu151(tt(),PeRCenTX,PeRCenTY) -> axxu152(axxisNatural(PeRCenTX),PeRCenTY) || 16: axxu152(tt(),PeRCenTX) -> axxu153(axxisLNat(PeRCenTX)) || 17: axxu153(tt()) -> tt() || 18: axxu161(tt(),PeRCenTX) -> cons(mark(PeRCenTX),natsFrom(s(PeRCenTX))) || 19: axxu171(tt(),PeRCenTX,PeRCenTY) -> axxhead(axxafterNth(mark(PeRCenTX),mark(PeRCenTY))) || 20: axxu181(tt(),PeRCenTX) -> mark(PeRCenTX) || 21: axxu191(tt(),PeRCenTX) -> pair(nil(),mark(PeRCenTX)) || 22: axxu201(tt(),PeRCenTX,PeRCenTY,PeRCenTZ) -> axxu202(axxsplitAt(mark(PeRCenTX),mark(PeRCenTZ)),PeRCenTY) || 23: axxu202(pair(PeRCenTX,PeRCenTY),PeRCenTZ) -> pair(cons(mark(PeRCenTZ),PeRCenTX),mark(PeRCenTY)) || 24: axxu21(tt(),PeRCenTX) -> mark(PeRCenTX) || 25: axxu211(tt(),PeRCenTX) -> mark(PeRCenTX) || 26: axxu221(tt(),PeRCenTX,PeRCenTY) -> axxfst(axxsplitAt(mark(PeRCenTX),mark(PeRCenTY))) || 27: axxu31(tt(),PeRCenTX) -> mark(PeRCenTX) || 28: axxu41(tt(),PeRCenTX,PeRCenTY) -> axxu42(axxisNatural(PeRCenTX),PeRCenTY) || 29: axxu42(tt(),PeRCenTX) -> axxu43(axxisLNat(PeRCenTX)) || 30: axxu43(tt()) -> tt() || 31: axxu51(tt(),PeRCenTX,PeRCenTY) -> axxu52(axxisNatural(PeRCenTX),PeRCenTY) || 32: axxu52(tt(),PeRCenTX) -> axxu53(axxisLNat(PeRCenTX)) || 33: axxu53(tt()) -> tt() || 34: axxu61(tt(),PeRCenTX) -> axxu62(axxisPLNat(PeRCenTX)) || 35: axxu62(tt()) -> tt() || 36: axxu71(tt(),PeRCenTX) -> axxu72(axxisNatural(PeRCenTX)) || 37: axxu72(tt()) -> tt() || 38: axxu81(tt(),PeRCenTX) -> axxu82(axxisPLNat(PeRCenTX)) || 39: axxu82(tt()) -> tt() || 40: axxu91(tt(),PeRCenTX) -> axxu92(axxisLNat(PeRCenTX)) || 41: axxu92(tt()) -> tt() || 42: axxafterNth(PeRCenTX,PeRCenTY) -> axxu11(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX,PeRCenTY) || 43: axxand(tt(),PeRCenTX) -> mark(PeRCenTX) || 44: axxfst(pair(PeRCenTX,PeRCenTY)) -> axxu21(axxand(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX) || 45: axxhead(cons(PeRCenTX,PeRCenTY)) -> axxu31(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX) || 46: axxisLNat(nil()) -> tt() || 47: axxisLNat(afterNth(PeRCenTX,PeRCenTY)) -> axxu41(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || 48: axxisLNat(cons(PeRCenTX,PeRCenTY)) -> axxu51(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || 49: axxisLNat(fst(PeRCenTX)) -> axxu61(axxisPLNatKind(PeRCenTX),PeRCenTX) || 50: axxisLNat(natsFrom(PeRCenTX)) -> axxu71(axxisNaturalKind(PeRCenTX),PeRCenTX) || 51: axxisLNat(snd(PeRCenTX)) -> axxu81(axxisPLNatKind(PeRCenTX),PeRCenTX) || 52: axxisLNat(tail(PeRCenTX)) -> axxu91(axxisLNatKind(PeRCenTX),PeRCenTX) || 53: axxisLNat(take(PeRCenTX,PeRCenTY)) -> axxu101(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || 54: axxisLNatKind(nil()) -> tt() || 55: axxisLNatKind(afterNth(PeRCenTX,PeRCenTY)) -> axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || 56: axxisLNatKind(cons(PeRCenTX,PeRCenTY)) -> axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || 57: axxisLNatKind(fst(PeRCenTX)) -> axxisPLNatKind(PeRCenTX) || 58: axxisLNatKind(natsFrom(PeRCenTX)) -> axxisNaturalKind(PeRCenTX) || 59: axxisLNatKind(snd(PeRCenTX)) -> axxisPLNatKind(PeRCenTX) || 60: axxisLNatKind(tail(PeRCenTX)) -> axxisLNatKind(PeRCenTX) || 61: axxisLNatKind(take(PeRCenTX,PeRCenTY)) -> axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || 62: axxisNatural(0()) -> tt() || 63: axxisNatural(head(PeRCenTX)) -> axxu111(axxisLNatKind(PeRCenTX),PeRCenTX) || 64: axxisNatural(s(PeRCenTX)) -> axxu121(axxisNaturalKind(PeRCenTX),PeRCenTX) || 65: axxisNatural(sel(PeRCenTX,PeRCenTY)) -> axxu131(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || 66: axxisNaturalKind(0()) -> tt() || 67: axxisNaturalKind(head(PeRCenTX)) -> axxisLNatKind(PeRCenTX) || 68: axxisNaturalKind(s(PeRCenTX)) -> axxisNaturalKind(PeRCenTX) || 69: axxisNaturalKind(sel(PeRCenTX,PeRCenTY)) -> axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || 70: axxisPLNat(pair(PeRCenTX,PeRCenTY)) -> axxu141(axxand(axxisLNatKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || 71: axxisPLNat(splitAt(PeRCenTX,PeRCenTY)) -> axxu151(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || 72: axxisPLNatKind(pair(PeRCenTX,PeRCenTY)) -> axxand(axxisLNatKind(PeRCenTX),isLNatKind(PeRCenTY)) || 73: axxisPLNatKind(splitAt(PeRCenTX,PeRCenTY)) -> axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || 74: axxnatsFrom(PeRCenTX) -> axxu161(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),PeRCenTX) || 75: axxsel(PeRCenTX,PeRCenTY) -> axxu171(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX,PeRCenTY) || 76: axxsnd(pair(PeRCenTX,PeRCenTY)) -> axxu181(axxand(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTY) || 77: axxsplitAt(0(),PeRCenTX) -> axxu191(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),PeRCenTX) || 78: axxsplitAt(s(PeRCenTX),cons(PeRCenTY,PeRCenTZ)) -> axxu201(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(and(isNatural(PeRCenTY),isNaturalKind(PeRCenTY)),and(isLNat(PeRCenTZ),isLNatKind(PeRCenTZ)))),PeRCenTX,PeRCenTY,PeRCenTZ) || 79: axxtail(cons(PeRCenTX,PeRCenTY)) -> axxu211(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTY) || 80: axxtake(PeRCenTX,PeRCenTY) -> axxu221(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX,PeRCenTY) || 81: mark(u101(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu101(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 82: mark(u102(PeRCenTX,PeRCenTY)) -> axxu102(mark(PeRCenTX),PeRCenTY) || 83: mark(isNatural(PeRCenTX)) -> axxisNatural(PeRCenTX) || 84: mark(u103(PeRCenTX)) -> axxu103(mark(PeRCenTX)) || 85: mark(isLNat(PeRCenTX)) -> axxisLNat(PeRCenTX) || 86: mark(u11(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu11(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 87: mark(snd(PeRCenTX)) -> axxsnd(mark(PeRCenTX)) || 88: mark(splitAt(PeRCenTX,PeRCenTY)) -> axxsplitAt(mark(PeRCenTX),mark(PeRCenTY)) || 89: mark(u111(PeRCenTX,PeRCenTY)) -> axxu111(mark(PeRCenTX),PeRCenTY) || 90: mark(u112(PeRCenTX)) -> axxu112(mark(PeRCenTX)) || 91: mark(u121(PeRCenTX,PeRCenTY)) -> axxu121(mark(PeRCenTX),PeRCenTY) || 92: mark(u122(PeRCenTX)) -> axxu122(mark(PeRCenTX)) || 93: mark(u131(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu131(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 94: mark(u132(PeRCenTX,PeRCenTY)) -> axxu132(mark(PeRCenTX),PeRCenTY) || 95: mark(u133(PeRCenTX)) -> axxu133(mark(PeRCenTX)) || 96: mark(u141(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu141(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 97: mark(u142(PeRCenTX,PeRCenTY)) -> axxu142(mark(PeRCenTX),PeRCenTY) || 98: mark(u143(PeRCenTX)) -> axxu143(mark(PeRCenTX)) || 99: mark(u151(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu151(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 100: mark(u152(PeRCenTX,PeRCenTY)) -> axxu152(mark(PeRCenTX),PeRCenTY) || 101: mark(u153(PeRCenTX)) -> axxu153(mark(PeRCenTX)) || 102: mark(u161(PeRCenTX,PeRCenTY)) -> axxu161(mark(PeRCenTX),PeRCenTY) || 103: mark(natsFrom(PeRCenTX)) -> axxnatsFrom(mark(PeRCenTX)) || 104: mark(u171(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu171(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 105: mark(head(PeRCenTX)) -> axxhead(mark(PeRCenTX)) || 106: mark(afterNth(PeRCenTX,PeRCenTY)) -> axxafterNth(mark(PeRCenTX),mark(PeRCenTY)) || 107: mark(u181(PeRCenTX,PeRCenTY)) -> axxu181(mark(PeRCenTX),PeRCenTY) || 108: mark(u191(PeRCenTX,PeRCenTY)) -> axxu191(mark(PeRCenTX),PeRCenTY) || 109: mark(u201(PeRCenTX,PeRCenTY,PeRCenTZ,PeRCenTU)) -> axxu201(mark(PeRCenTX),PeRCenTY,PeRCenTZ,PeRCenTU) || 110: mark(u202(PeRCenTX,PeRCenTY)) -> axxu202(mark(PeRCenTX),PeRCenTY) || 111: mark(u21(PeRCenTX,PeRCenTY)) -> axxu21(mark(PeRCenTX),PeRCenTY) || 112: mark(u211(PeRCenTX,PeRCenTY)) -> axxu211(mark(PeRCenTX),PeRCenTY) || 113: mark(u221(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu221(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 114: mark(fst(PeRCenTX)) -> axxfst(mark(PeRCenTX)) || 115: mark(u31(PeRCenTX,PeRCenTY)) -> axxu31(mark(PeRCenTX),PeRCenTY) || 116: mark(u41(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu41(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 117: mark(u42(PeRCenTX,PeRCenTY)) -> axxu42(mark(PeRCenTX),PeRCenTY) || 118: mark(u43(PeRCenTX)) -> axxu43(mark(PeRCenTX)) || 119: mark(u51(PeRCenTX,PeRCenTY,PeRCenTZ)) -> axxu51(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || 120: mark(u52(PeRCenTX,PeRCenTY)) -> axxu52(mark(PeRCenTX),PeRCenTY) || 121: mark(u53(PeRCenTX)) -> axxu53(mark(PeRCenTX)) || 122: mark(u61(PeRCenTX,PeRCenTY)) -> axxu61(mark(PeRCenTX),PeRCenTY) || 123: mark(u62(PeRCenTX)) -> axxu62(mark(PeRCenTX)) || 124: mark(isPLNat(PeRCenTX)) -> axxisPLNat(PeRCenTX) || 125: mark(u71(PeRCenTX,PeRCenTY)) -> axxu71(mark(PeRCenTX),PeRCenTY) || 126: mark(u72(PeRCenTX)) -> axxu72(mark(PeRCenTX)) || 127: mark(u81(PeRCenTX,PeRCenTY)) -> axxu81(mark(PeRCenTX),PeRCenTY) || 128: mark(u82(PeRCenTX)) -> axxu82(mark(PeRCenTX)) || 129: mark(u91(PeRCenTX,PeRCenTY)) -> axxu91(mark(PeRCenTX),PeRCenTY) || 130: mark(u92(PeRCenTX)) -> axxu92(mark(PeRCenTX)) || 131: mark(and(PeRCenTX,PeRCenTY)) -> axxand(mark(PeRCenTX),PeRCenTY) || 132: mark(isNaturalKind(PeRCenTX)) -> axxisNaturalKind(PeRCenTX) || 133: mark(isLNatKind(PeRCenTX)) -> axxisLNatKind(PeRCenTX) || 134: mark(isPLNatKind(PeRCenTX)) -> axxisPLNatKind(PeRCenTX) || 135: mark(tail(PeRCenTX)) -> axxtail(mark(PeRCenTX)) || 136: mark(take(PeRCenTX,PeRCenTY)) -> axxtake(mark(PeRCenTX),mark(PeRCenTY)) || 137: mark(sel(PeRCenTX,PeRCenTY)) -> axxsel(mark(PeRCenTX),mark(PeRCenTY)) || 138: mark(tt()) -> tt() || 139: mark(cons(PeRCenTX,PeRCenTY)) -> cons(mark(PeRCenTX),PeRCenTY) || 140: mark(s(PeRCenTX)) -> s(mark(PeRCenTX)) || 141: mark(pair(PeRCenTX,PeRCenTY)) -> pair(mark(PeRCenTX),mark(PeRCenTY)) || 142: mark(nil()) -> nil() || 143: mark(0()) -> 0() || 144: axxu101(PeRCenTX,PeRCenTY,PeRCenTZ) -> u101(PeRCenTX,PeRCenTY,PeRCenTZ) || 145: axxu102(PeRCenTX,PeRCenTY) -> u102(PeRCenTX,PeRCenTY) || 146: axxisNatural(PeRCenTX) -> isNatural(PeRCenTX) || 147: axxu103(PeRCenTX) -> u103(PeRCenTX) || 148: axxisLNat(PeRCenTX) -> isLNat(PeRCenTX) || 149: axxu11(PeRCenTX,PeRCenTY,PeRCenTZ) -> u11(PeRCenTX,PeRCenTY,PeRCenTZ) || 150: axxsnd(PeRCenTX) -> snd(PeRCenTX) || 151: axxsplitAt(PeRCenTX,PeRCenTY) -> splitAt(PeRCenTX,PeRCenTY) || 152: axxu111(PeRCenTX,PeRCenTY) -> u111(PeRCenTX,PeRCenTY) || 153: axxu112(PeRCenTX) -> u112(PeRCenTX) || 154: axxu121(PeRCenTX,PeRCenTY) -> u121(PeRCenTX,PeRCenTY) || 155: axxu122(PeRCenTX) -> u122(PeRCenTX) || 156: axxu131(PeRCenTX,PeRCenTY,PeRCenTZ) -> u131(PeRCenTX,PeRCenTY,PeRCenTZ) || 157: axxu132(PeRCenTX,PeRCenTY) -> u132(PeRCenTX,PeRCenTY) || 158: axxu133(PeRCenTX) -> u133(PeRCenTX) || 159: axxu141(PeRCenTX,PeRCenTY,PeRCenTZ) -> u141(PeRCenTX,PeRCenTY,PeRCenTZ) || 160: axxu142(PeRCenTX,PeRCenTY) -> u142(PeRCenTX,PeRCenTY) || 161: axxu143(PeRCenTX) -> u143(PeRCenTX) || 162: axxu151(PeRCenTX,PeRCenTY,PeRCenTZ) -> u151(PeRCenTX,PeRCenTY,PeRCenTZ) || 163: axxu152(PeRCenTX,PeRCenTY) -> u152(PeRCenTX,PeRCenTY) || 164: axxu153(PeRCenTX) -> u153(PeRCenTX) || 165: axxu161(PeRCenTX,PeRCenTY) -> u161(PeRCenTX,PeRCenTY) || 166: axxnatsFrom(PeRCenTX) -> natsFrom(PeRCenTX) || 167: axxu171(PeRCenTX,PeRCenTY,PeRCenTZ) -> u171(PeRCenTX,PeRCenTY,PeRCenTZ) || 168: axxhead(PeRCenTX) -> head(PeRCenTX) || 169: axxafterNth(PeRCenTX,PeRCenTY) -> afterNth(PeRCenTX,PeRCenTY) || 170: axxu181(PeRCenTX,PeRCenTY) -> u181(PeRCenTX,PeRCenTY) || 171: axxu191(PeRCenTX,PeRCenTY) -> u191(PeRCenTX,PeRCenTY) || 172: axxu201(PeRCenTX,PeRCenTY,PeRCenTZ,PeRCenTU) -> u201(PeRCenTX,PeRCenTY,PeRCenTZ,PeRCenTU) || 173: axxu202(PeRCenTX,PeRCenTY) -> u202(PeRCenTX,PeRCenTY) || 174: axxu21(PeRCenTX,PeRCenTY) -> u21(PeRCenTX,PeRCenTY) || 175: axxu211(PeRCenTX,PeRCenTY) -> u211(PeRCenTX,PeRCenTY) || 176: axxu221(PeRCenTX,PeRCenTY,PeRCenTZ) -> u221(PeRCenTX,PeRCenTY,PeRCenTZ) || 177: axxfst(PeRCenTX) -> fst(PeRCenTX) || 178: axxu31(PeRCenTX,PeRCenTY) -> u31(PeRCenTX,PeRCenTY) || 179: axxu41(PeRCenTX,PeRCenTY,PeRCenTZ) -> u41(PeRCenTX,PeRCenTY,PeRCenTZ) || 180: axxu42(PeRCenTX,PeRCenTY) -> u42(PeRCenTX,PeRCenTY) || 181: axxu43(PeRCenTX) -> u43(PeRCenTX) || 182: axxu51(PeRCenTX,PeRCenTY,PeRCenTZ) -> u51(PeRCenTX,PeRCenTY,PeRCenTZ) || 183: axxu52(PeRCenTX,PeRCenTY) -> u52(PeRCenTX,PeRCenTY) || 184: axxu53(PeRCenTX) -> u53(PeRCenTX) || 185: axxu61(PeRCenTX,PeRCenTY) -> u61(PeRCenTX,PeRCenTY) || 186: axxu62(PeRCenTX) -> u62(PeRCenTX) || 187: axxisPLNat(PeRCenTX) -> isPLNat(PeRCenTX) || 188: axxu71(PeRCenTX,PeRCenTY) -> u71(PeRCenTX,PeRCenTY) || 189: axxu72(PeRCenTX) -> u72(PeRCenTX) || 190: axxu81(PeRCenTX,PeRCenTY) -> u81(PeRCenTX,PeRCenTY) || 191: axxu82(PeRCenTX) -> u82(PeRCenTX) || 192: axxu91(PeRCenTX,PeRCenTY) -> u91(PeRCenTX,PeRCenTY) || 193: axxu92(PeRCenTX) -> u92(PeRCenTX) || 194: axxand(PeRCenTX,PeRCenTY) -> and(PeRCenTX,PeRCenTY) || 195: axxisNaturalKind(PeRCenTX) -> isNaturalKind(PeRCenTX) || 196: axxisLNatKind(PeRCenTX) -> isLNatKind(PeRCenTX) || 197: axxisPLNatKind(PeRCenTX) -> isPLNatKind(PeRCenTX) || 198: axxtail(PeRCenTX) -> tail(PeRCenTX) || 199: axxtake(PeRCenTX,PeRCenTY) -> take(PeRCenTX,PeRCenTY) || 200: axxsel(PeRCenTX,PeRCenTY) -> sel(PeRCenTX,PeRCenTY) || 201: TIlDePAIR(PeRCenTX,PeRCenTY) -> PeRCenTX || 202: TIlDePAIR(PeRCenTX,PeRCenTY) -> PeRCenTY || Number of strict rules: 202 || Direct POLO(bPol) ... failed. || Uncurrying ... failed. || Dependency Pairs: || #1: #axxu102(tt(),PeRCenTX) -> #axxu103(axxisLNat(PeRCenTX)) || #2: #axxu102(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #3: #mark(u11(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu11(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #4: #mark(u11(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #5: #axxand(tt(),PeRCenTX) -> #mark(PeRCenTX) || #6: #axxu42(tt(),PeRCenTX) -> #axxu43(axxisLNat(PeRCenTX)) || #7: #axxu42(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #8: #mark(isNatural(PeRCenTX)) -> #axxisNatural(PeRCenTX) || #9: #axxafterNth(PeRCenTX,PeRCenTY) -> #axxu11(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX,PeRCenTY) || #10: #axxafterNth(PeRCenTX,PeRCenTY) -> #axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #11: #axxafterNth(PeRCenTX,PeRCenTY) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #12: #axxafterNth(PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #13: #mark(u31(PeRCenTX,PeRCenTY)) -> #axxu31(mark(PeRCenTX),PeRCenTY) || #14: #mark(u31(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #15: #mark(u133(PeRCenTX)) -> #axxu133(mark(PeRCenTX)) || #16: #mark(u133(PeRCenTX)) -> #mark(PeRCenTX) || #17: #mark(fst(PeRCenTX)) -> #axxfst(mark(PeRCenTX)) || #18: #mark(fst(PeRCenTX)) -> #mark(PeRCenTX) || #19: #mark(u151(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu151(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #20: #mark(u151(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #21: #mark(u142(PeRCenTX,PeRCenTY)) -> #axxu142(mark(PeRCenTX),PeRCenTY) || #22: #mark(u142(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #23: #mark(u121(PeRCenTX,PeRCenTY)) -> #axxu121(mark(PeRCenTX),PeRCenTY) || #24: #mark(u121(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #25: #axxisPLNatKind(splitAt(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #26: #axxisPLNatKind(splitAt(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #27: #axxisLNat(afterNth(PeRCenTX,PeRCenTY)) -> #axxu41(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || #28: #axxisLNat(afterNth(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #29: #axxisLNat(afterNth(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #30: #axxisLNat(take(PeRCenTX,PeRCenTY)) -> #axxu101(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || #31: #axxisLNat(take(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #32: #axxisLNat(take(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #33: #axxisPLNat(splitAt(PeRCenTX,PeRCenTY)) -> #axxu151(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || #34: #axxisPLNat(splitAt(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #35: #axxisPLNat(splitAt(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #36: #mark(cons(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #37: #axxisLNat(cons(PeRCenTX,PeRCenTY)) -> #axxu51(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || #38: #axxisLNat(cons(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #39: #axxisLNat(cons(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #40: #mark(u62(PeRCenTX)) -> #axxu62(mark(PeRCenTX)) || #41: #mark(u62(PeRCenTX)) -> #mark(PeRCenTX) || #42: #axxsel(PeRCenTX,PeRCenTY) -> #axxu171(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX,PeRCenTY) || #43: #axxsel(PeRCenTX,PeRCenTY) -> #axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #44: #axxsel(PeRCenTX,PeRCenTY) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #45: #axxsel(PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #46: #mark(u211(PeRCenTX,PeRCenTY)) -> #axxu211(mark(PeRCenTX),PeRCenTY) || #47: #mark(u211(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #48: #axxnatsFrom(PeRCenTX) -> #axxu161(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),PeRCenTX) || #49: #axxnatsFrom(PeRCenTX) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #50: #axxnatsFrom(PeRCenTX) -> #axxisNatural(PeRCenTX) || #51: #axxisLNatKind(natsFrom(PeRCenTX)) -> #axxisNaturalKind(PeRCenTX) || #52: #mark(u221(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu221(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #53: #mark(u221(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #54: #axxisLNatKind(take(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #55: #axxisLNatKind(take(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #56: #axxu81(tt(),PeRCenTX) -> #axxu82(axxisPLNat(PeRCenTX)) || #57: #axxu81(tt(),PeRCenTX) -> #axxisPLNat(PeRCenTX) || #58: #mark(u41(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu41(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #59: #mark(u41(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #60: #axxisLNatKind(snd(PeRCenTX)) -> #axxisPLNatKind(PeRCenTX) || #61: #mark(u202(PeRCenTX,PeRCenTY)) -> #axxu202(mark(PeRCenTX),PeRCenTY) || #62: #mark(u202(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #63: #mark(isNaturalKind(PeRCenTX)) -> #axxisNaturalKind(PeRCenTX) || #64: #axxisLNatKind(afterNth(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #65: #axxisLNatKind(afterNth(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #66: #axxisNaturalKind(head(PeRCenTX)) -> #axxisLNatKind(PeRCenTX) || #67: #axxu91(tt(),PeRCenTX) -> #axxu92(axxisLNat(PeRCenTX)) || #68: #axxu91(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #69: #mark(u112(PeRCenTX)) -> #axxu112(mark(PeRCenTX)) || #70: #mark(u112(PeRCenTX)) -> #mark(PeRCenTX) || #71: #mark(u181(PeRCenTX,PeRCenTY)) -> #axxu181(mark(PeRCenTX),PeRCenTY) || #72: #mark(u181(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #73: #axxisLNat(snd(PeRCenTX)) -> #axxu81(axxisPLNatKind(PeRCenTX),PeRCenTX) || #74: #axxisLNat(snd(PeRCenTX)) -> #axxisPLNatKind(PeRCenTX) || #75: #axxu142(tt(),PeRCenTX) -> #axxu143(axxisLNat(PeRCenTX)) || #76: #axxu142(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #77: #axxu131(tt(),PeRCenTX,PeRCenTY) -> #axxu132(axxisNatural(PeRCenTX),PeRCenTY) || #78: #axxu131(tt(),PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #79: #mark(u143(PeRCenTX)) -> #axxu143(mark(PeRCenTX)) || #80: #mark(u143(PeRCenTX)) -> #mark(PeRCenTX) || #81: #axxisLNatKind(fst(PeRCenTX)) -> #axxisPLNatKind(PeRCenTX) || #82: #axxsnd(pair(PeRCenTX,PeRCenTY)) -> #axxu181(axxand(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTY) || #83: #axxsnd(pair(PeRCenTX,PeRCenTY)) -> #axxand(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #84: #axxsnd(pair(PeRCenTX,PeRCenTY)) -> #axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)) || #85: #axxsnd(pair(PeRCenTX,PeRCenTY)) -> #axxisLNat(PeRCenTX) || #86: #mark(u201(PeRCenTX,PeRCenTY,PeRCenTZ,PeRCenTU)) -> #axxu201(mark(PeRCenTX),PeRCenTY,PeRCenTZ,PeRCenTU) || #87: #mark(u201(PeRCenTX,PeRCenTY,PeRCenTZ,PeRCenTU)) -> #mark(PeRCenTX) || #88: #mark(u132(PeRCenTX,PeRCenTY)) -> #axxu132(mark(PeRCenTX),PeRCenTY) || #89: #mark(u132(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #90: #axxu21(tt(),PeRCenTX) -> #mark(PeRCenTX) || #91: #mark(isPLNatKind(PeRCenTX)) -> #axxisPLNatKind(PeRCenTX) || #92: #axxisPLNat(pair(PeRCenTX,PeRCenTY)) -> #axxu141(axxand(axxisLNatKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || #93: #axxisPLNat(pair(PeRCenTX,PeRCenTY)) -> #axxand(axxisLNatKind(PeRCenTX),isLNatKind(PeRCenTY)) || #94: #axxisPLNat(pair(PeRCenTX,PeRCenTY)) -> #axxisLNatKind(PeRCenTX) || #95: #axxu202(pair(PeRCenTX,PeRCenTY),PeRCenTZ) -> #mark(PeRCenTZ) || #96: #axxu202(pair(PeRCenTX,PeRCenTY),PeRCenTZ) -> #mark(PeRCenTY) || #97: #mark(u82(PeRCenTX)) -> #axxu82(mark(PeRCenTX)) || #98: #mark(u82(PeRCenTX)) -> #mark(PeRCenTX) || #99: #mark(u101(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu101(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #100: #mark(u101(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #101: #mark(u43(PeRCenTX)) -> #axxu43(mark(PeRCenTX)) || #102: #mark(u43(PeRCenTX)) -> #mark(PeRCenTX) || #103: #axxsplitAt(s(PeRCenTX),cons(PeRCenTY,PeRCenTZ)) -> #axxu201(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(and(isNatural(PeRCenTY),isNaturalKind(PeRCenTY)),and(isLNat(PeRCenTZ),isLNatKind(PeRCenTZ)))),PeRCenTX,PeRCenTY,PeRCenTZ) || #104: #axxsplitAt(s(PeRCenTX),cons(PeRCenTY,PeRCenTZ)) -> #axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(and(isNatural(PeRCenTY),isNaturalKind(PeRCenTY)),and(isLNat(PeRCenTZ),isLNatKind(PeRCenTZ)))) || #105: #axxsplitAt(s(PeRCenTX),cons(PeRCenTY,PeRCenTZ)) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #106: #axxsplitAt(s(PeRCenTX),cons(PeRCenTY,PeRCenTZ)) -> #axxisNatural(PeRCenTX) || #107: #axxhead(cons(PeRCenTX,PeRCenTY)) -> #axxu31(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX) || #108: #axxhead(cons(PeRCenTX,PeRCenTY)) -> #axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #109: #axxhead(cons(PeRCenTX,PeRCenTY)) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #110: #axxhead(cons(PeRCenTX,PeRCenTY)) -> #axxisNatural(PeRCenTX) || #111: #mark(u141(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu141(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #112: #mark(u141(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #113: #axxisNaturalKind(sel(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #114: #axxisNaturalKind(sel(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #115: #mark(u153(PeRCenTX)) -> #axxu153(mark(PeRCenTX)) || #116: #mark(u153(PeRCenTX)) -> #mark(PeRCenTX) || #117: #axxu141(tt(),PeRCenTX,PeRCenTY) -> #axxu142(axxisLNat(PeRCenTX),PeRCenTY) || #118: #axxu141(tt(),PeRCenTX,PeRCenTY) -> #axxisLNat(PeRCenTX) || #119: #axxu51(tt(),PeRCenTX,PeRCenTY) -> #axxu52(axxisNatural(PeRCenTX),PeRCenTY) || #120: #axxu51(tt(),PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #121: #axxtail(cons(PeRCenTX,PeRCenTY)) -> #axxu211(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTY) || #122: #axxtail(cons(PeRCenTX,PeRCenTY)) -> #axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #123: #axxtail(cons(PeRCenTX,PeRCenTY)) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #124: #axxtail(cons(PeRCenTX,PeRCenTY)) -> #axxisNatural(PeRCenTX) || #125: #axxisLNatKind(cons(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #126: #axxisLNatKind(cons(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #127: #mark(u111(PeRCenTX,PeRCenTY)) -> #axxu111(mark(PeRCenTX),PeRCenTY) || #128: #mark(u111(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #129: #mark(isLNatKind(PeRCenTX)) -> #axxisLNatKind(PeRCenTX) || #130: #mark(u102(PeRCenTX,PeRCenTY)) -> #axxu102(mark(PeRCenTX),PeRCenTY) || #131: #mark(u102(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #132: #mark(u21(PeRCenTX,PeRCenTY)) -> #axxu21(mark(PeRCenTX),PeRCenTY) || #133: #mark(u21(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #134: #mark(afterNth(PeRCenTX,PeRCenTY)) -> #axxafterNth(mark(PeRCenTX),mark(PeRCenTY)) || #135: #mark(afterNth(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #136: #mark(afterNth(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTY) || #137: #axxisLNat(tail(PeRCenTX)) -> #axxu91(axxisLNatKind(PeRCenTX),PeRCenTX) || #138: #axxisLNat(tail(PeRCenTX)) -> #axxisLNatKind(PeRCenTX) || #139: #axxisLNat(fst(PeRCenTX)) -> #axxu61(axxisPLNatKind(PeRCenTX),PeRCenTX) || #140: #axxisLNat(fst(PeRCenTX)) -> #axxisPLNatKind(PeRCenTX) || #141: #axxu211(tt(),PeRCenTX) -> #mark(PeRCenTX) || #142: #mark(u92(PeRCenTX)) -> #axxu92(mark(PeRCenTX)) || #143: #mark(u92(PeRCenTX)) -> #mark(PeRCenTX) || #144: #mark(u191(PeRCenTX,PeRCenTY)) -> #axxu191(mark(PeRCenTX),PeRCenTY) || #145: #mark(u191(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #146: #mark(u91(PeRCenTX,PeRCenTY)) -> #axxu91(mark(PeRCenTX),PeRCenTY) || #147: #mark(u91(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #148: #axxu181(tt(),PeRCenTX) -> #mark(PeRCenTX) || #149: #mark(u72(PeRCenTX)) -> #axxu72(mark(PeRCenTX)) || #150: #mark(u72(PeRCenTX)) -> #mark(PeRCenTX) || #151: #mark(splitAt(PeRCenTX,PeRCenTY)) -> #axxsplitAt(mark(PeRCenTX),mark(PeRCenTY)) || #152: #mark(splitAt(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #153: #mark(splitAt(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTY) || #154: #axxu121(tt(),PeRCenTX) -> #axxu122(axxisNatural(PeRCenTX)) || #155: #axxu121(tt(),PeRCenTX) -> #axxisNatural(PeRCenTX) || #156: #mark(take(PeRCenTX,PeRCenTY)) -> #axxtake(mark(PeRCenTX),mark(PeRCenTY)) || #157: #mark(take(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #158: #mark(take(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTY) || #159: #axxu132(tt(),PeRCenTX) -> #axxu133(axxisLNat(PeRCenTX)) || #160: #axxu132(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #161: #mark(u122(PeRCenTX)) -> #axxu122(mark(PeRCenTX)) || #162: #mark(u122(PeRCenTX)) -> #mark(PeRCenTX) || #163: #mark(u51(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu51(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #164: #mark(u51(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #165: #mark(u131(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu131(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #166: #mark(u131(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #167: #axxisNatural(s(PeRCenTX)) -> #axxu121(axxisNaturalKind(PeRCenTX),PeRCenTX) || #168: #axxisNatural(s(PeRCenTX)) -> #axxisNaturalKind(PeRCenTX) || #169: #axxisPLNatKind(pair(PeRCenTX,PeRCenTY)) -> #axxand(axxisLNatKind(PeRCenTX),isLNatKind(PeRCenTY)) || #170: #axxisPLNatKind(pair(PeRCenTX,PeRCenTY)) -> #axxisLNatKind(PeRCenTX) || #171: #mark(u52(PeRCenTX,PeRCenTY)) -> #axxu52(mark(PeRCenTX),PeRCenTY) || #172: #mark(u52(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #173: #axxu111(tt(),PeRCenTX) -> #axxu112(axxisLNat(PeRCenTX)) || #174: #axxu111(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #175: #axxfst(pair(PeRCenTX,PeRCenTY)) -> #axxu21(axxand(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX) || #176: #axxfst(pair(PeRCenTX,PeRCenTY)) -> #axxand(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #177: #axxfst(pair(PeRCenTX,PeRCenTY)) -> #axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)) || #178: #axxfst(pair(PeRCenTX,PeRCenTY)) -> #axxisLNat(PeRCenTX) || #179: #axxisNatural(sel(PeRCenTX,PeRCenTY)) -> #axxu131(axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)),PeRCenTX,PeRCenTY) || #180: #axxisNatural(sel(PeRCenTX,PeRCenTY)) -> #axxand(axxisNaturalKind(PeRCenTX),isLNatKind(PeRCenTY)) || #181: #axxisNatural(sel(PeRCenTX,PeRCenTY)) -> #axxisNaturalKind(PeRCenTX) || #182: #axxu41(tt(),PeRCenTX,PeRCenTY) -> #axxu42(axxisNatural(PeRCenTX),PeRCenTY) || #183: #axxu41(tt(),PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #184: #axxu201(tt(),PeRCenTX,PeRCenTY,PeRCenTZ) -> #axxu202(axxsplitAt(mark(PeRCenTX),mark(PeRCenTZ)),PeRCenTY) || #185: #axxu201(tt(),PeRCenTX,PeRCenTY,PeRCenTZ) -> #axxsplitAt(mark(PeRCenTX),mark(PeRCenTZ)) || #186: #axxu201(tt(),PeRCenTX,PeRCenTY,PeRCenTZ) -> #mark(PeRCenTX) || #187: #axxu201(tt(),PeRCenTX,PeRCenTY,PeRCenTZ) -> #mark(PeRCenTZ) || #188: #mark(u81(PeRCenTX,PeRCenTY)) -> #axxu81(mark(PeRCenTX),PeRCenTY) || #189: #mark(u81(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #190: #axxu61(tt(),PeRCenTX) -> #axxu62(axxisPLNat(PeRCenTX)) || #191: #axxu61(tt(),PeRCenTX) -> #axxisPLNat(PeRCenTX) || #192: #mark(u103(PeRCenTX)) -> #axxu103(mark(PeRCenTX)) || #193: #mark(u103(PeRCenTX)) -> #mark(PeRCenTX) || #194: #mark(snd(PeRCenTX)) -> #axxsnd(mark(PeRCenTX)) || #195: #mark(snd(PeRCenTX)) -> #mark(PeRCenTX) || #196: #axxu31(tt(),PeRCenTX) -> #mark(PeRCenTX) || #197: #mark(sel(PeRCenTX,PeRCenTY)) -> #axxsel(mark(PeRCenTX),mark(PeRCenTY)) || #198: #mark(sel(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #199: #mark(sel(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTY) || #200: #axxisLNatKind(tail(PeRCenTX)) -> #axxisLNatKind(PeRCenTX) || #201: #mark(u42(PeRCenTX,PeRCenTY)) -> #axxu42(mark(PeRCenTX),PeRCenTY) || #202: #mark(u42(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #203: #axxu52(tt(),PeRCenTX) -> #axxu53(axxisLNat(PeRCenTX)) || #204: #axxu52(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #205: #axxu171(tt(),PeRCenTX,PeRCenTY) -> #axxhead(axxafterNth(mark(PeRCenTX),mark(PeRCenTY))) || #206: #axxu171(tt(),PeRCenTX,PeRCenTY) -> #axxafterNth(mark(PeRCenTX),mark(PeRCenTY)) || #207: #axxu171(tt(),PeRCenTX,PeRCenTY) -> #mark(PeRCenTX) || #208: #axxu171(tt(),PeRCenTX,PeRCenTY) -> #mark(PeRCenTY) || #209: #mark(u71(PeRCenTX,PeRCenTY)) -> #axxu71(mark(PeRCenTX),PeRCenTY) || #210: #mark(u71(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #211: #axxisNatural(head(PeRCenTX)) -> #axxu111(axxisLNatKind(PeRCenTX),PeRCenTX) || #212: #axxisNatural(head(PeRCenTX)) -> #axxisLNatKind(PeRCenTX) || #213: #mark(tail(PeRCenTX)) -> #axxtail(mark(PeRCenTX)) || #214: #mark(tail(PeRCenTX)) -> #mark(PeRCenTX) || #215: #mark(head(PeRCenTX)) -> #axxhead(mark(PeRCenTX)) || #216: #mark(head(PeRCenTX)) -> #mark(PeRCenTX) || #217: #axxu221(tt(),PeRCenTX,PeRCenTY) -> #axxfst(axxsplitAt(mark(PeRCenTX),mark(PeRCenTY))) || #218: #axxu221(tt(),PeRCenTX,PeRCenTY) -> #axxsplitAt(mark(PeRCenTX),mark(PeRCenTY)) || #219: #axxu221(tt(),PeRCenTX,PeRCenTY) -> #mark(PeRCenTX) || #220: #axxu221(tt(),PeRCenTX,PeRCenTY) -> #mark(PeRCenTY) || #221: #mark(u152(PeRCenTX,PeRCenTY)) -> #axxu152(mark(PeRCenTX),PeRCenTY) || #222: #mark(u152(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #223: #mark(isLNat(PeRCenTX)) -> #axxisLNat(PeRCenTX) || #224: #mark(u61(PeRCenTX,PeRCenTY)) -> #axxu61(mark(PeRCenTX),PeRCenTY) || #225: #mark(u61(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #226: #axxisNaturalKind(s(PeRCenTX)) -> #axxisNaturalKind(PeRCenTX) || #227: #mark(and(PeRCenTX,PeRCenTY)) -> #axxand(mark(PeRCenTX),PeRCenTY) || #228: #mark(and(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #229: #axxu71(tt(),PeRCenTX) -> #axxu72(axxisNatural(PeRCenTX)) || #230: #axxu71(tt(),PeRCenTX) -> #axxisNatural(PeRCenTX) || #231: #axxu191(tt(),PeRCenTX) -> #mark(PeRCenTX) || #232: #axxu152(tt(),PeRCenTX) -> #axxu153(axxisLNat(PeRCenTX)) || #233: #axxu152(tt(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #234: #axxsplitAt(0(),PeRCenTX) -> #axxu191(axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)),PeRCenTX) || #235: #axxsplitAt(0(),PeRCenTX) -> #axxand(axxisLNat(PeRCenTX),isLNatKind(PeRCenTX)) || #236: #axxsplitAt(0(),PeRCenTX) -> #axxisLNat(PeRCenTX) || #237: #axxu101(tt(),PeRCenTX,PeRCenTY) -> #axxu102(axxisNatural(PeRCenTX),PeRCenTY) || #238: #axxu101(tt(),PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #239: #mark(s(PeRCenTX)) -> #mark(PeRCenTX) || #240: #mark(isPLNat(PeRCenTX)) -> #axxisPLNat(PeRCenTX) || #241: #mark(pair(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #242: #mark(pair(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTY) || #243: #mark(u53(PeRCenTX)) -> #axxu53(mark(PeRCenTX)) || #244: #mark(u53(PeRCenTX)) -> #mark(PeRCenTX) || #245: #axxu151(tt(),PeRCenTX,PeRCenTY) -> #axxu152(axxisNatural(PeRCenTX),PeRCenTY) || #246: #axxu151(tt(),PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #247: #mark(u161(PeRCenTX,PeRCenTY)) -> #axxu161(mark(PeRCenTX),PeRCenTY) || #248: #mark(u161(PeRCenTX,PeRCenTY)) -> #mark(PeRCenTX) || #249: #mark(natsFrom(PeRCenTX)) -> #axxnatsFrom(mark(PeRCenTX)) || #250: #mark(natsFrom(PeRCenTX)) -> #mark(PeRCenTX) || #251: #axxu11(tt(),PeRCenTX,PeRCenTY) -> #axxsnd(axxsplitAt(mark(PeRCenTX),mark(PeRCenTY))) || #252: #axxu11(tt(),PeRCenTX,PeRCenTY) -> #axxsplitAt(mark(PeRCenTX),mark(PeRCenTY)) || #253: #axxu11(tt(),PeRCenTX,PeRCenTY) -> #mark(PeRCenTX) || #254: #axxu11(tt(),PeRCenTX,PeRCenTY) -> #mark(PeRCenTY) || #255: #mark(u171(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #axxu171(mark(PeRCenTX),PeRCenTY,PeRCenTZ) || #256: #mark(u171(PeRCenTX,PeRCenTY,PeRCenTZ)) -> #mark(PeRCenTX) || #257: #axxtake(PeRCenTX,PeRCenTY) -> #axxu221(axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))),PeRCenTX,PeRCenTY) || #258: #axxtake(PeRCenTX,PeRCenTY) -> #axxand(axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)),and(isLNat(PeRCenTY),isLNatKind(PeRCenTY))) || #259: #axxtake(PeRCenTX,PeRCenTY) -> #axxand(axxisNatural(PeRCenTX),isNaturalKind(PeRCenTX)) || #260: #axxtake(PeRCenTX,PeRCenTY) -> #axxisNatural(PeRCenTX) || #261: #axxisLNat(natsFrom(PeRCenTX)) -> #axxu71(axxisNaturalKind(PeRCenTX),PeRCenTX) || #262: #axxisLNat(natsFrom(PeRCenTX)) -> #axxisNaturalKind(PeRCenTX) || #263: #axxu161(tt(),PeRCenTX) -> #mark(PeRCenTX) || Number of SCCs: 1, DPs: 239 || SCC { #2..5 #7..14 #16..39 #41..55 #57..66 #68 #70..74 #76..78 #80..96 #98..100 #102..114 #116..141 #143..148 #150..153 #155..158 #160 #162..172 #174..189 #191 #193..202 #204..228 #230 #231 #233..242 #244..263 } || POLO(Sum)... POLO(max)... succeeded. || u81 w: max(x1 + 1, x2) || #axxu51 w: max(x2 + 20, x3 + 17) || #axxu122 w: 0 || u62 w: x1 || TIlDePAIR w: 0 || #axxu133 w: 0 || #axxu141 w: max(x2 + 17, x3 + 17) || axxu211 w: max(x1 + 7, x2 + 8) || axxu62 w: x1 || u133 w: x1 || #axxu103 w: 0 || axxu142 w: max(x1 + 7, x2 + 7) || s w: x1 || axxisLNat w: x1 + 7 || u132 w: max(x1 + 66, x2 + 8) || axxu121 w: max(x1, x2 + 10) || axxisPLNatKind w: 10 || u91 w: max(x1, x2 + 24) || #axxu111 w: max(x1 + 21, x2 + 21) || u111 w: max(x1 + 11, x2 + 11) || u53 w: x1 || isPLNatKind w: 10 || #axxu82 w: 0 || #axxu211 w: max(x2 + 17) || #axxu92 w: 0 || #axxu132 w: max(x2 + 17) || axxu131 w: max(x1 + 71, x2 + 76, x3 + 80) || u191 w: max(x1 + 22, x2 + 21) || isPLNat w: x1 || axxsnd w: x1 + 4 || u102 w: max(x1 + 34, x2 + 36) || axxu191 w: max(x1 + 22, x2 + 21) || axxu11 w: max(x1, x2 + 36, x3 + 36) || axxu143 w: x1 || u121 w: max(x1, x2 + 10) || #axxu102 w: max(x1 + 44, x2 + 17) || #axxu181 w: max(x2 + 35) || #axxu101 w: max(x2 + 54, x3 + 46) || axxu133 w: x1 || u181 w: max(x1 + 11, x2 + 25) || #axxisLNat w: x1 + 17 || axxu132 w: max(x1 + 66, x2 + 8) || u153 w: x1 || take w: max(x1 + 39, x2 + 37) || and w: max(x1, x2) || u122 w: x1 || axxsplitAt w: max(x1 + 30, x2 + 32) || u103 w: x1 + 29 || #axxu221 w: max(x1 + 37, x2 + 45, x3 + 44) || pair w: max(x1 + 17, x2 + 21) || axxu91 w: max(x1, x2 + 24) || fst w: x1 + 4 || axxand w: max(x1, x2) || #axxu151 w: max(x2 + 30, x3 + 20) || u131 w: max(x1 + 71, x2 + 76, x3 + 80) || natsFrom w: x1 + 20 || axxu103 w: x1 + 29 || isNaturalKind w: 10 || splitAt w: max(x1 + 30, x2 + 32) || u52 w: max(x1, x2 + 7) || #axxu11 w: max(x2 + 46, x3 + 46) || axxu201 w: max(x1, x2 + 30, x3 + 33, x4 + 32) || axxu102 w: max(x1 + 34, x2 + 36) || u61 w: max(x1, x2) || #axxu43 w: 0 || u92 w: x1 || axxu31 w: max(x1 + 1, x2 + 10) || axxu72 w: x1 || u221 w: max(x1 + 27, x2 + 36, x3 + 37) || #axxisNaturalKind w: 20 || #axxu143 w: 0 || u151 w: max(x1 + 10, x2 + 20, x3 + 10) || u202 w: max(x1, x2 + 21) || isNatural w: x1 + 10 || #axxu121 w: max(x1 + 10, x2 + 20) || #axxsplitAt w: max(x1 + 38, x2 + 42) || axxnatsFrom w: x1 + 20 || u41 w: max(x1 + 45, x2 + 44, x3 + 44) || axxisNatural w: x1 + 10 || u211 w: max(x1 + 7, x2 + 8) || axxu151 w: max(x1 + 10, x2 + 20, x3 + 10) || #axxu112 w: 0 || axxu181 w: max(x1 + 11, x2 + 25) || #axxu91 w: max(x2 + 34) || #axxu201 w: max(x1, x2 + 38, x3 + 10, x4 + 42) || tail w: x1 + 17 || u51 w: max(x1, x2 + 10, x3 + 7) || #axxafterNth w: max(x1 + 47, x2 + 46) || #mark w: x1 + 10 || #axxtail w: x1 + 17 || 0 w: 1 || axxu82 w: x1 || axxu141 w: max(x1, x2 + 14, x3 + 7) || #axxnatsFrom w: x1 + 20 || axxisPLNat w: x1 || axxu81 w: max(x1 + 1, x2) || #axxu72 w: 0 || #axxisPLNat w: x1 || axxu152 w: max(x1, x2 + 10) || u11 w: max(x1, x2 + 36, x3 + 36) || sel w: max(x1 + 70, x2 + 71) || #axxisLNatKind w: 20 || afterNth w: max(x1 + 48, x2 + 37) || #axxu62 w: 0 || #axxisPLNatKind w: 20 || #axxu161 w: max(x1 + 9, x2 + 20) || nil w: 0 || #axxsnd w: x1 + 14 || isLNat w: x1 + 7 || #TIlDePAIR w: 0 || #axxu21 w: max(x1 + 12, x2 + 10) || axxu41 w: max(x1 + 45, x2 + 44, x3 + 44) || #axxu142 w: max(x2 + 17) || #axxu202 w: max(x1 + 8, x2 + 10) || axxafterNth w: max(x1 + 48, x2 + 37) || mark w: x1 || #axxu152 w: max(x2 + 20) || axxu71 w: max(x1 + 17, x2 + 11) || u101 w: max(x1 + 36, x2 + 44, x3 + 36) || #axxu81 w: max(x2 + 10) || axxsel w: max(x1 + 70, x2 + 71) || u72 w: x1 || u201 w: max(x1, x2 + 30, x3 + 33, x4 + 32) || u21 w: max(x1 + 2, x2 + 1) || axxu52 w: max(x1, x2 + 7) || u143 w: x1 || axxu122 w: x1 || isLNatKind w: 10 || #axxu52 w: max(x2 + 17) || axxu111 w: max(x1 + 11, x2 + 11) || axxfst w: x1 + 4 || axxu61 w: max(x1, x2) || u43 w: x1 || axxu171 w: max(x1 + 60, x2 + 59, x3 + 71) || u82 w: x1 || u161 w: max(x1 + 10, x2 + 20) || #axxu31 w: max(x2 + 20) || axxisNaturalKind w: 10 || #axxand w: max(x2 + 10) || #axxsel w: max(x1 + 80, x2 + 81) || #axxu42 w: max(x2 + 17) || axxu51 w: max(x1, x2 + 10, x3 + 7) || u171 w: max(x1 + 60, x2 + 59, x3 + 71) || axxu221 w: max(x1 + 27, x2 + 36, x3 + 37) || head w: x1 + 11 || cons w: max(x1 + 3, x2) || axxu92 w: x1 || u142 w: max(x1 + 7, x2 + 7) || snd w: x1 + 4 || #axxu41 w: max(x2 + 54, x3 + 54) || axxtail w: x1 + 17 || u112 w: x1 || u42 w: max(x1 + 8, x2 + 8) || tt w: 1 || #axxu191 w: max(x1 + 32, x2 + 31) || axxu42 w: max(x1 + 8, x2 + 8) || #axxu153 w: 0 || #axxu131 w: max(x2 + 86, x3 + 90) || axxu153 w: x1 || u152 w: max(x1, x2 + 10) || axxu161 w: max(x1 + 10, x2 + 20) || axxisLNatKind w: 10 || axxu202 w: max(x1, x2 + 21) || #axxu53 w: 0 || u71 w: max(x1 + 17, x2 + 11) || axxtake w: max(x1 + 39, x2 + 37) || #axxu61 w: max(x1 + 10, x2 + 10) || axxu53 w: x1 || #axxfst w: x1 + 6 || #axxu171 w: max(x1 + 70, x2 + 69, x3 + 81) || axxu101 w: max(x1 + 36, x2 + 44, x3 + 36) || #axxu71 w: max(x1 + 27, x2 + 21) || #axxisNatural w: x1 + 20 || axxu112 w: x1 || u31 w: max(x1 + 1, x2 + 10) || u141 w: max(x1, x2 + 14, x3 + 7) || axxu21 w: max(x1 + 2, x2 + 1) || #axxtake w: max(x1 + 47, x2 + 44) || axxu43 w: x1 || #axxhead w: x1 + 17 || axxhead w: x1 + 11 || USABLE RULES: { 1..200 } || Removed DPs: #10..12 #14 #17 #18 #20 #22 #28..32 #34..36 #43..47 #53 #57 #59 #61 #68 #72..74 #77 #78 #83..85 #88 #89 #93 #94 #96 #100 #104..106 #128 #131 #133..136 #138..141 #145 #148 #152 #153 #156..158 #166 #174..183 #186 #187 #189 #191 #193 #195 #196 #198 #199 #201 #202 #205..208 #210 #212..220 #230 #231 #233 #235 #236 #238 #240..242 #246..250 #252..254 #256 #258..260 #262 #263 || Number of SCCs: 1, DPs: 77 || SCC { #2 #4 #5 #8 #16 #21 #23..26 #37..39 #41 #51 #54 #55 #60 #62..66 #70 #76 #80 #81 #86 #87 #90 #91 #95 #98 #99 #102 #103 #111..114 #116..120 #125 #126 #129 #130 #132 #143 #147 #150 #151 #155 #162..164 #167..172 #184 #185 #200 #204 #222 #223 #225..228 #237 #239 #244 } || POLO(Sum)... POLO(max)... succeeded. || u81 w: max(x2) || #axxu51 w: max(x2 + 2, x3 + 2) || #axxu122 w: 0 || u62 w: x1 + 1 || TIlDePAIR w: 0 || #axxu133 w: 0 || #axxu141 w: max(x2 + 4, x3 + 3) || axxu211 w: max(x2 + 1) || axxu62 w: x1 + 1 || u133 w: x1 + 1 || #axxu103 w: 0 || axxu142 w: max(x1 + 2, x2 + 2) || s w: x1 || axxisLNat w: x1 || u132 w: max(x2 + 1) || axxu121 w: max(x1, x2) || axxisPLNatKind w: x1 + 1 || u91 w: max(x1, x2 + 1) || #axxu111 w: 0 || u111 w: max(x2 + 1) || u53 w: x1 || isPLNatKind w: x1 + 1 || #axxu82 w: 0 || #axxu211 w: 0 || #axxu92 w: 0 || #axxu132 w: 0 || axxu131 w: max(x3 + 1) || u191 w: max(x2 + 2) || isPLNat w: x1 || axxsnd w: x1 + 1 || u102 w: max(x1 + 2, x2 + 1) || axxu191 w: max(x2 + 2) || axxu11 w: max(x1 + 8, x2 + 9, x3 + 8) || axxu143 w: x1 || u121 w: max(x1, x2) || #axxu102 w: max(x2 + 3) || #axxu181 w: 0 || #axxu101 w: max(x2 + 5, x3 + 3) || axxu133 w: x1 + 1 || u181 w: max(x2 + 3) || #axxisLNat w: x1 + 2 || axxu132 w: max(x2 + 1) || u153 w: x1 || take w: max(x1 + 6, x2 + 9) || and w: max(x1, x2) || u122 w: x1 || axxsplitAt w: max(x1 + 4, x2 + 7) || u103 w: 1 || #axxu221 w: 0 || pair w: max(x1 + 2, x2 + 2) || axxu91 w: max(x1, x2 + 1) || fst w: x1 + 2 || axxand w: max(x1, x2) || #axxu151 w: 0 || u131 w: max(x3 + 1) || natsFrom w: x1 + 4 || axxu103 w: 1 || isNaturalKind w: x1 || splitAt w: max(x1 + 4, x2 + 7) || u52 w: max(x1, x2) || #axxu11 w: 0 || axxu201 w: max(x1 + 4, x2 + 4, x3 + 6, x4 + 7) || axxu102 w: max(x1 + 2, x2 + 1) || u61 w: max(x1 + 1, x2 + 1) || #axxu43 w: 0 || u92 w: x1 + 1 || axxu31 w: max(x2) || axxu72 w: x1 || u221 w: max(x2 + 6, x3 + 9) || #axxisNaturalKind w: x1 + 2 || #axxu143 w: 0 || u151 w: max(x2, x3) || u202 w: max(x1, x2 + 6) || isNatural w: x1 || #axxu121 w: max(x2 + 2) || #axxsplitAt w: max(x1 + 5, x2 + 2) || axxnatsFrom w: x1 + 4 || u41 w: max(x3) || axxisNatural w: x1 || u211 w: max(x2 + 1) || axxu151 w: max(x2, x3) || #axxu112 w: 0 || axxu181 w: max(x2 + 3) || #axxu91 w: 0 || #axxu201 w: max(x2 + 5, x3 + 4, x4 + 2) || tail w: x1 + 11 || u51 w: max(x1, x2, x3) || #axxafterNth w: 0 || #mark w: x1 + 2 || #axxtail w: 17 || 0 w: 0 || axxu82 w: x1 || axxu141 w: max(x1 + 2, x2 + 2, x3 + 2) || #axxnatsFrom w: 20 || axxisPLNat w: x1 || axxu81 w: max(x2) || #axxu72 w: 0 || #axxisPLNat w: 0 || axxu152 w: max(x1, x2) || u11 w: max(x1 + 8, x2 + 9, x3 + 8) || sel w: max(x1 + 10, x2 + 11) || #axxisLNatKind w: x1 + 2 || afterNth w: max(x1 + 9, x2 + 8) || #axxu62 w: 0 || #axxisPLNatKind w: x1 + 3 || #axxu161 w: 0 || nil w: 0 || #axxsnd w: 14 || isLNat w: x1 || #TIlDePAIR w: 0 || #axxu21 w: max(x2 + 5) || axxu41 w: max(x3) || #axxu142 w: max(x2 + 3) || #axxu202 w: max(x2 + 3) || axxafterNth w: max(x1 + 9, x2 + 8) || mark w: x1 || #axxu152 w: 0 || axxu71 w: max(x2) || u101 w: max(x1 + 2, x2 + 4, x3 + 2) || #axxu81 w: 0 || axxsel w: max(x1 + 10, x2 + 11) || u72 w: x1 || u201 w: max(x1 + 4, x2 + 4, x3 + 6, x4 + 7) || u21 w: max(x1 + 1, x2 + 4) || axxu52 w: max(x1, x2) || u143 w: x1 || axxu122 w: x1 || isLNatKind w: x1 || #axxu52 w: max(x1 + 1, x2 + 2) || axxu111 w: max(x2 + 1) || axxfst w: x1 + 2 || axxu61 w: max(x1 + 1, x2 + 1) || u43 w: x1 || axxu171 w: max(x2 + 10, x3 + 10) || u82 w: x1 || u161 w: max(x2 + 4) || #axxu31 w: 0 || axxisNaturalKind w: x1 || #axxand w: max(x2 + 2) || #axxsel w: 0 || #axxu42 w: 0 || axxu51 w: max(x1, x2, x3) || u171 w: max(x2 + 10, x3 + 10) || axxu221 w: max(x2 + 6, x3 + 9) || head w: x1 + 1 || cons w: max(x1 + 4, x2) || axxu92 w: x1 + 1 || u142 w: max(x1 + 2, x2 + 2) || snd w: x1 + 1 || #axxu41 w: 0 || axxtail w: x1 + 11 || u112 w: x1 + 1 || u42 w: max(x2) || tt w: 0 || #axxu191 w: 0 || axxu42 w: max(x2) || #axxu153 w: 0 || #axxu131 w: 0 || axxu153 w: x1 || u152 w: max(x1, x2) || axxu161 w: max(x2 + 4) || axxisLNatKind w: x1 || axxu202 w: max(x1, x2 + 6) || #axxu53 w: 0 || u71 w: max(x2) || axxtake w: max(x1 + 6, x2 + 9) || #axxu61 w: 0 || axxu53 w: x1 || #axxfst w: 6 || #axxu171 w: 0 || axxu101 w: max(x1 + 2, x2 + 4, x3 + 2) || #axxu71 w: 0 || #axxisNatural w: x1 + 2 || axxu112 w: x1 + 1 || u31 w: max(x2) || u141 w: max(x1 + 2, x2 + 2, x3 + 2) || axxu21 w: max(x1 + 1, x2 + 4) || #axxtake w: 0 || axxu43 w: x1 || #axxhead w: 17 || axxhead w: x1 + 1 || USABLE RULES: { 1..200 } || Removed DPs: #2 #4 #16 #21 #25 #26 #39 #41 #51 #54 #55 #64..66 #70 #76 #81 #86 #87 #90 #95 #99 #112..114 #118 #126 #132 #143 #151 #169 #170 #184 #200 #225 || Number of SCCs: 4, DPs: 31 || SCC { #226 } || POLO(Sum)... succeeded. || u81 w: 2 || #axxu51 w: 1 || #axxu122 w: 0 || u62 w: 2 || TIlDePAIR w: 0 || #axxu133 w: 0 || #axxu141 w: 1 || axxu211 w: 6 || axxu62 w: 1 || u133 w: x1 + 1 || #axxu103 w: 0 || axxu142 w: x1 + x2 + 1 || s w: x1 + 1 || axxisLNat w: 6 || u132 w: 2 || axxu121 w: x2 + 6 || axxisPLNatKind w: x1 + 8 || u91 w: x2 + 1 || #axxu111 w: 0 || u111 w: 1 || u53 w: 10 || isPLNatKind w: 9 || #axxu82 w: 0 || #axxu211 w: 0 || #axxu92 w: 0 || #axxu132 w: 0 || axxu131 w: x3 + 6 || u191 w: 1 || isPLNat w: 7 || axxsnd w: 3 || u102 w: 1 || axxu191 w: 6 || axxu11 w: 2 || axxu143 w: x1 + 6 || u121 w: 7 || #axxu102 w: 1 || #axxu181 w: 0 || #axxu101 w: 1 || axxu133 w: 0 || u181 w: x2 + 5 || #axxisLNat w: 1 || axxu132 w: x1 + x2 + 1 || u153 w: x1 + 21 || take w: 1 || and w: 16 || u122 w: 1 || axxsplitAt w: 6 || u103 w: 1 || #axxu221 w: 6 || pair w: 6 || axxu91 w: x1 || fst w: x1 || axxand w: 15 || #axxu151 w: 5 || u131 w: x2 + 7 || natsFrom w: x1 + 7 || axxu103 w: 9 || isNaturalKind w: 7 || splitAt w: 1 || u52 w: 1 || #axxu11 w: 5 || axxu201 w: x2 + x4 + 7 || axxu102 w: x2 + 8 || u61 w: x1 + 8 || #axxu43 w: 0 || u92 w: 1 || axxu31 w: 9 || axxu72 w: 8 || u221 w: x1 + 4 || #axxisNaturalKind w: x1 + 1 || #axxu143 w: 0 || u151 w: 9 || u202 w: 1 || isNatural w: 0 || #axxu121 w: 1 || #axxsplitAt w: 0 || axxnatsFrom w: 6 || u41 w: x1 + 8 || axxisNatural w: 0 || u211 w: 1 || axxu151 w: x2 + 8 || #axxu112 w: 0 || axxu181 w: 4 || #axxu91 w: 0 || #axxu201 w: 0 || tail w: x1 + 7 || u51 w: 1 || #axxafterNth w: 5 || #mark w: 1 || #axxtail w: 5 || 0 w: 0 || axxu82 w: 6 || axxu141 w: 6 || #axxnatsFrom w: 5 || axxisPLNat w: x1 + 6 || axxu81 w: x1 + 1 || #axxu72 w: 0 || #axxisPLNat w: 5 || axxu152 w: x1 + x2 + 9 || u11 w: 2 || sel w: 1 || #axxisLNatKind w: 1 || afterNth w: x1 + 2 || #axxu62 w: 0 || #axxisPLNatKind w: 1 || #axxu161 w: 5 || nil w: 6 || #axxsnd w: 2 || isLNat w: 6 || #TIlDePAIR w: 0 || #axxu21 w: 1 || axxu41 w: x2 + 7 || #axxu142 w: 1 || #axxu202 w: 1 || axxafterNth w: x2 + 1 || mark w: 5 || #axxu152 w: 4 || axxu71 w: 7 || u101 w: 8 || #axxu81 w: 5 || axxsel w: 6 || u72 w: 1 || u201 w: 8 || u21 w: 8 || axxu52 w: 10 || u143 w: 7 || axxu122 w: 0 || isLNatKind w: 8 || #axxu52 w: 0 || axxu111 w: 6 || axxfst w: 4 || axxu61 w: 7 || u43 w: 10 || axxu171 w: x2 + x3 + 7 || u82 w: x1 + 7 || u161 w: 1 || #axxu31 w: 4 || axxisNaturalKind w: 6 || #axxand w: 1 || #axxsel w: 5 || #axxu42 w: 5 || axxu51 w: x2 + 10 || u171 w: x1 + 8 || axxu221 w: x2 + x3 + 3 || head w: 1 || cons w: x2 + 6 || axxu92 w: 10 || u142 w: x1 + 1 || snd w: x1 + 4 || #axxu41 w: 6 || axxtail w: 6 || u112 w: 8 || u42 w: 10 || tt w: 10 || #axxu191 w: 5 || axxu42 w: x2 + 10 || #axxu153 w: 0 || #axxu131 w: 5 || axxu153 w: 20 || u152 w: 10 || axxu161 w: 6 || axxisLNatKind w: 7 || axxu202 w: x1 + 1 || #axxu53 w: 0 || u71 w: x2 + 8 || axxtake w: x2 + 1 || #axxu61 w: 0 || axxu53 w: 10 || #axxfst w: 5 || #axxu171 w: 0 || axxu101 w: x2 + x3 + 7 || #axxu71 w: 5 || #axxisNatural w: 1 || axxu112 w: 7 || u31 w: x1 + x2 + 10 || u141 w: x2 + 7 || axxu21 w: 7 || #axxtake w: 5 || axxu43 w: 10 || #axxhead w: 2 || axxhead w: 8 || USABLE RULES: { 21 29..33 41 171 180..184 193 } || Removed DPs: #226 || Number of SCCs: 3, DPs: 30 || SCC { #155 #167 } || POLO(Sum)... succeeded. || u81 w: 2 || #axxu51 w: 1 || #axxu122 w: 0 || u62 w: 2 || TIlDePAIR w: 0 || #axxu133 w: 0 || #axxu141 w: 1 || axxu211 w: 6 || axxu62 w: 1 || u133 w: x1 + 1 || #axxu103 w: 0 || axxu142 w: x1 + x2 + 1 || s w: x1 + 2 || axxisLNat w: 6 || u132 w: 2 || axxu121 w: x2 + 6 || axxisPLNatKind w: x1 + 8 || u91 w: x2 + 1 || #axxu111 w: 0 || u111 w: 1 || u53 w: 10 || isPLNatKind w: 9 || #axxu82 w: 0 || #axxu211 w: 0 || #axxu92 w: 0 || #axxu132 w: 0 || axxu131 w: x3 + 6 || u191 w: 1 || isPLNat w: 7 || axxsnd w: 3 || u102 w: 1 || axxu191 w: 6 || axxu11 w: 2 || axxu143 w: x1 + 6 || u121 w: 7 || #axxu102 w: 1 || #axxu181 w: 0 || #axxu101 w: 1 || axxu133 w: 0 || u181 w: x2 + 5 || #axxisLNat w: 1 || axxu132 w: x1 + x2 + 1 || u153 w: x1 + 21 || take w: 1 || and w: 16 || u122 w: 1 || axxsplitAt w: 6 || u103 w: 1 || #axxu221 w: 6 || pair w: 6 || axxu91 w: x1 || fst w: x1 || axxand w: 15 || #axxu151 w: 5 || u131 w: x2 + 7 || natsFrom w: x1 + 7 || axxu103 w: 9 || isNaturalKind w: 7 || splitAt w: 1 || u52 w: 1 || #axxu11 w: 5 || axxu201 w: x2 + x4 + 7 || axxu102 w: x2 + 8 || u61 w: x1 + 8 || #axxu43 w: 0 || u92 w: 1 || axxu31 w: 9 || axxu72 w: 8 || u221 w: x1 + 4 || #axxisNaturalKind w: 1 || #axxu143 w: 0 || u151 w: 9 || u202 w: 1 || isNatural w: 0 || #axxu121 w: x2 + 1 || #axxsplitAt w: 0 || axxnatsFrom w: 6 || u41 w: x1 + 8 || axxisNatural w: 0 || u211 w: 1 || axxu151 w: x2 + 8 || #axxu112 w: 0 || axxu181 w: 4 || #axxu91 w: 0 || #axxu201 w: 0 || tail w: x1 + 7 || u51 w: 1 || #axxafterNth w: 5 || #mark w: 1 || #axxtail w: 5 || 0 w: 0 || axxu82 w: 6 || axxu141 w: 6 || #axxnatsFrom w: 5 || axxisPLNat w: x1 + 6 || axxu81 w: x1 + 1 || #axxu72 w: 0 || #axxisPLNat w: 5 || axxu152 w: x1 + x2 + 9 || u11 w: 2 || sel w: 1 || #axxisLNatKind w: 1 || afterNth w: x1 + 2 || #axxu62 w: 0 || #axxisPLNatKind w: 1 || #axxu161 w: 5 || nil w: 6 || #axxsnd w: 2 || isLNat w: 6 || #TIlDePAIR w: 0 || #axxu21 w: 1 || axxu41 w: x2 + 7 || #axxu142 w: 1 || #axxu202 w: 1 || axxafterNth w: x2 + 1 || mark w: 5 || #axxu152 w: 4 || axxu71 w: 7 || u101 w: 8 || #axxu81 w: 5 || axxsel w: 6 || u72 w: 1 || u201 w: 8 || u21 w: 8 || axxu52 w: 10 || u143 w: 7 || axxu122 w: 0 || isLNatKind w: 8 || #axxu52 w: 0 || axxu111 w: 6 || axxfst w: 4 || axxu61 w: 7 || u43 w: 10 || axxu171 w: x2 + x3 + 7 || u82 w: x1 + 7 || u161 w: 1 || #axxu31 w: 4 || axxisNaturalKind w: 6 || #axxand w: 1 || #axxsel w: 5 || #axxu42 w: 5 || axxu51 w: x2 + 10 || u171 w: x1 + 8 || axxu221 w: x2 + x3 + 3 || head w: 1 || cons w: x2 + 6 || axxu92 w: 10 || u142 w: x1 + 1 || snd w: x1 + 4 || #axxu41 w: 6 || axxtail w: 6 || u112 w: 8 || u42 w: 10 || tt w: 10 || #axxu191 w: 5 || axxu42 w: x2 + 10 || #axxu153 w: 0 || #axxu131 w: 5 || axxu153 w: 20 || u152 w: 10 || axxu161 w: 6 || axxisLNatKind w: 7 || axxu202 w: x1 + 1 || #axxu53 w: 0 || u71 w: x2 + 8 || axxtake w: x2 + 1 || #axxu61 w: 0 || axxu53 w: 10 || #axxfst w: 5 || #axxu171 w: 0 || axxu101 w: x2 + x3 + 7 || #axxu71 w: 5 || #axxisNatural w: x1 || axxu112 w: 7 || u31 w: x1 + x2 + 10 || u141 w: x2 + 7 || axxu21 w: 7 || #axxtake w: 5 || axxu43 w: 10 || #axxhead w: 2 || axxhead w: 8 || USABLE RULES: { 21 29..33 41 171 180..184 193 } || Removed DPs: #155 #167 || Number of SCCs: 2, DPs: 28 || SCC { #103 #185 } || POLO(Sum)... POLO(max)... QLPOS... POLO(mSum)... QWPOpS(mSum)... succeeded. || u81 s: [2] p: 9 w: max(x1 + 2, x2) || #axxu51 s: [1,3] p: 0 w: max(x1, x3) || #axxu122 s: [] p: 0 w: 1 || u62 s: [] p: 4 w: 15 || TIlDePAIR s: [] p: 0 w: x2 + 1 || #axxu133 s: [] p: 0 w: 1 || #axxu141 s: [] p: 0 w: max(x1 + 1) || axxu211 s: 2 || axxu62 s: [] p: 4 w: 15 || u133 s: [] p: 8 w: 0 || #axxu103 s: [] p: 0 w: 1 || axxu142 s: [] p: 5 w: max(x2 + 2) || s s: [1] p: 10 w: x1 || axxisLNat s: [] p: 11 w: x1 + 11 || u132 s: [2] p: 8 w: max(x2) || axxu121 s: 1 || axxisPLNatKind s: [] p: 8 w: 0 || u91 s: [] p: 11 w: max(x1 + 12) || #axxu111 s: [] p: 0 w: max(x1 + 1) || u111 s: [1] p: 2 w: max(x1 + 3, x2 + 1) || u53 s: [] p: 8 w: 0 || isPLNatKind s: [] p: 8 w: 0 || #axxu82 s: [] p: 0 w: 0 || #axxu211 s: [2] p: 0 w: max(x2) || #axxu92 s: [] p: 0 w: 1 || #axxu132 s: [1,2] p: 0 w: x1 + x2 + 1 || axxu131 s: [1] p: 4 w: max(x1 + 9, x3 + 10) || u191 s: [2] p: 8 w: max(x2) || isPLNat s: [1] p: 5 w: x1 + 13 || axxsnd s: [] p: 3 w: x1 + 1 || u102 s: [] p: 8 w: max(x1 + 12, x2 + 13) || axxu191 s: [2] p: 8 w: max(x2) || axxu11 s: [] p: 3 w: max(x1 + 2, x3 + 9) || axxu143 s: [] p: 0 w: 1 || u121 s: 1 || #axxu102 s: [1] p: 0 w: max(x1) || #axxu181 s: [] p: 0 w: 0 || #axxu101 s: [1,2] p: 0 w: x1 + x2 + x3 + 1 || axxu133 s: [] p: 8 w: 0 || u181 s: [] p: 3 w: max(x1, x2 + 1) || #axxisLNat s: [] p: 0 w: 1 || axxu132 s: [2] p: 8 w: max(x2) || u153 s: [] p: 8 w: 0 || take s: [2,1] p: 3 w: x1 + x2 + 22 || and s: 2 || u122 s: [] p: 8 w: 0 || axxsplitAt s: [] p: 12 w: max(x2 + 3) || u103 s: [] p: 8 w: 12 || #axxu221 s: [1,2,3] p: 0 w: max(x1, x2 + 1, x3) || pair s: [1] p: 0 w: max(x1, x2) || axxu91 s: [] p: 11 w: max(x1 + 12) || fst s: [] p: 1 w: x1 + 5 || axxand s: 2 || #axxu151 s: [] p: 0 w: max(x3) || u131 s: [1] p: 4 w: max(x1 + 9, x3 + 10) || natsFrom s: [] p: 12 w: x1 + 10 || axxu103 s: [] p: 8 w: 12 || isNaturalKind s: [] p: 8 w: 0 || splitAt s: [] p: 12 w: max(x2 + 3) || u52 s: [] p: 8 w: 0 || #axxu11 s: [3,2] p: 0 w: max(x2, x3) || axxu201 s: [] p: 12 w: max(x3 + 7, x4 + 3) || axxu102 s: [] p: 8 w: max(x1 + 12, x2 + 13) || u61 s: [] p: 4 w: max(x1 + 15, x2 + 14) || #axxu43 s: [] p: 0 w: 1 || u92 s: [] p: 2 w: 12 || axxu31 s: [] p: 4 w: max(x2 + 1) || axxu72 s: [] p: 8 w: 9 || u221 s: [] p: 2 w: max(x2 + 4, x3 + 8) || #axxisNaturalKind s: [] p: 0 w: 1 || #axxu143 s: [] p: 0 w: 0 || u151 s: [3] p: 8 w: max(x3) || u202 s: [] p: 12 w: max(x1, x2 + 4) || isNatural s: [] p: 6 w: x1 + 8 || #axxu121 s: [2,1] p: 0 w: max(x1, x2 + 1) || #axxsplitAt s: [1] p: 9 w: max(x1) || axxnatsFrom s: [] p: 12 w: x1 + 10 || u41 s: [] p: 11 w: max(x1 + 8, x3 + 9) || axxisNatural s: [] p: 6 w: x1 + 8 || u211 s: 2 || axxu151 s: [3] p: 8 w: max(x3) || #axxu112 s: [] p: 0 w: 0 || axxu181 s: [] p: 3 w: max(x1, x2 + 1) || #axxu91 s: [1,2] p: 0 w: max(x1, x2) || #axxu201 s: [2] p: 9 w: max(x2) || tail s: [1] p: 0 w: x1 + 1 || u51 s: [] p: 6 w: max(x1 + 10, x3 + 9) || #axxafterNth s: [] p: 0 w: 1 || #mark s: [] p: 0 w: 1 || #axxtail s: [] p: 0 w: 1 || 0 s: [] p: 11 w: 1 || axxu82 s: [] p: 9 w: 0 || axxu141 s: [] p: 5 w: max(x3 + 12) || #axxnatsFrom s: [] p: 0 w: 1 || axxisPLNat s: [1] p: 5 w: x1 + 13 || axxu81 s: [2] p: 9 w: max(x1 + 2, x2) || #axxu72 s: [] p: 0 w: 0 || #axxisPLNat s: [] p: 0 w: 0 || axxu152 s: [2] p: 8 w: max(x2) || u11 s: [] p: 3 w: max(x1 + 2, x3 + 9) || sel s: [] p: 14 w: x2 + 14 || #axxisLNatKind s: [] p: 0 w: 0 || afterNth s: [] p: 3 w: max(x2 + 9) || #axxu62 s: [] p: 0 w: 0 || #axxisPLNatKind s: [] p: 0 w: 0 || #axxu161 s: [1,2] p: 0 w: max(x1, x2) || nil s: [] p: 8 w: 0 || #axxsnd s: [] p: 0 w: 0 || isLNat s: [] p: 11 w: x1 + 11 || #TIlDePAIR s: [2] p: 0 w: x2 + 1 || #axxu21 s: [2,1] p: 0 w: x1 + x2 || axxu41 s: [] p: 11 w: max(x1 + 8, x3 + 9) || #axxu142 s: [1,2] p: 0 w: max(x1, x2) || #axxu202 s: [1,2] p: 0 w: x1 + x2 + 1 || axxafterNth s: [] p: 3 w: max(x2 + 9) || mark s: 1 || #axxu152 s: [1] p: 0 w: max(x1 + 1) || axxu71 s: [] p: 8 w: max(x1, x2 + 9) || u101 s: [3,2] p: 7 w: max(x2 + 21, x3 + 23) || #axxu81 s: [1] p: 0 w: max(x1) || axxsel s: [] p: 14 w: x2 + 14 || u72 s: [] p: 8 w: 9 || u201 s: [] p: 12 w: max(x3 + 7, x4 + 3) || u21 s: [] p: 0 w: max(x2 + 5) || axxu52 s: [] p: 8 w: 0 || u143 s: [] p: 0 w: 1 || axxu122 s: [] p: 8 w: 0 || isLNatKind s: [] p: 8 w: 0 || #axxu52 s: [] p: 0 w: max(x1 + 1) || axxu111 s: [1] p: 2 w: max(x1 + 3, x2 + 1) || axxfst s: [] p: 1 w: x1 + 5 || axxu61 s: [] p: 4 w: max(x1 + 15, x2 + 14) || u43 s: [] p: 5 w: 1 || axxu171 s: [1] p: 13 w: max(x1 + 1, x3 + 9) || u82 s: [] p: 9 w: 0 || u161 s: [2] p: 11 w: max(x1 + 10, x2 + 10) || #axxu31 s: [1,2] p: 0 w: max(x1, x2) || axxisNaturalKind s: [] p: 8 w: 0 || #axxand s: [2,1] p: 0 w: max(x1 + 1, x2 + 1) || #axxsel s: [] p: 0 w: x2 + 1 || #axxu42 s: [] p: 0 w: x1 + 1 || axxu51 s: [] p: 6 w: max(x1 + 10, x3 + 9) || u171 s: [1] p: 13 w: max(x1 + 1, x3 + 9) || axxu221 s: [] p: 2 w: max(x2 + 4, x3 + 8) || head s: [1] p: 12 w: x1 || cons s: [1] p: 10 w: max(x1 + 4, x2) || axxu92 s: [] p: 2 w: 12 || u142 s: [] p: 5 w: max(x2 + 2) || snd s: [] p: 3 w: x1 + 1 || #axxu41 s: [2] p: 0 w: max(x2 + 1) || axxtail s: [1] p: 0 w: x1 + 1 || u112 s: [] p: 8 w: 2 || u42 s: [] p: 5 w: max(x2 + 2) || tt s: [] p: 8 w: 0 || #axxu191 s: [] p: 0 w: max(x1) || axxu42 s: [] p: 5 w: max(x2 + 2) || #axxu153 s: [] p: 0 w: 0 || #axxu131 s: [1,3,2] p: 0 w: max(x1 + 1, x2, x3 + 1) || axxu153 s: [] p: 8 w: 0 || u152 s: [2] p: 8 w: max(x2) || axxu161 s: [2] p: 11 w: max(x1 + 10, x2 + 10) || axxisLNatKind s: [] p: 8 w: 0 || axxu202 s: [] p: 12 w: max(x1, x2 + 4) || #axxu53 s: [] p: 0 w: 0 || u71 s: [] p: 8 w: max(x1, x2 + 9) || axxtake s: [2,1] p: 3 w: x1 + x2 + 22 || #axxu61 s: [] p: 0 w: max(x2 + 1) || axxu53 s: [] p: 8 w: 0 || #axxfst s: [] p: 0 w: 0 || #axxu171 s: [1,3,2] p: 0 w: max(x1, x2, x3) || axxu101 s: [3,2] p: 7 w: max(x2 + 21, x3 + 23) || #axxu71 s: [1] p: 0 w: max(x1 + 1) || #axxisNatural s: [] p: 0 w: 1 || axxu112 s: [] p: 8 w: 2 || u31 s: [] p: 4 w: max(x2 + 1) || u141 s: [] p: 5 w: max(x3 + 12) || axxu21 s: [] p: 0 w: max(x2 + 5) || #axxtake s: [1,2] p: 0 w: x1 + x2 || axxu43 s: [] p: 5 w: 1 || #axxhead s: [] p: 0 w: 1 || axxhead s: [1] p: 12 w: x1 || USABLE RULES: { 1..200 } || Removed DPs: #103 || Number of SCCs: 1, DPs: 26 || SCC { #5 #24 #37 #38 #62 #80 #98 #102 #116 #119 #125 #129 #147 #150 #162..164 #171 #172 #204 #222 #223 #227 #228 #239 #244 } || POLO(Sum)... succeeded. || u81 w: 2 || #axxu51 w: x3 + 9 || #axxu122 w: 0 || u62 w: 1 || TIlDePAIR w: 0 || #axxu133 w: 0 || #axxu141 w: 1 || axxu211 w: x1 + 1 || axxu62 w: x1 + 1 || u133 w: x1 + 20 || #axxu103 w: 0 || axxu142 w: x1 || s w: x1 + 1 || axxisLNat w: 8 || u132 w: 3 || axxu121 w: x2 + 7 || axxisPLNatKind w: x1 + 8 || u91 w: x1 + 3 || #axxu111 w: 0 || u111 w: 8 || u53 w: x1 + 1 || isPLNatKind w: 9 || #axxu82 w: 0 || #axxu211 w: 0 || #axxu92 w: 0 || #axxu132 w: 0 || axxu131 w: x3 + 7 || u191 w: 1 || isPLNat w: x1 + 7 || axxsnd w: 3 || u102 w: 1 || axxu191 w: 6 || axxu11 w: x2 + x3 + 2 || axxu143 w: x1 + 11 || u121 w: x1 + 8 || #axxu102 w: 1 || #axxu181 w: 0 || #axxu101 w: 1 || axxu133 w: 19 || u181 w: x2 + 5 || #axxisLNat w: x1 + 4 || axxu132 w: x1 + 2 || u153 w: x1 + 11 || take w: 2 || and w: x1 + x2 + 9 || u122 w: x1 + 16 || axxsplitAt w: 6 || u103 w: 1 || #axxu221 w: 6 || pair w: 6 || axxu91 w: x1 + x2 + 2 || fst w: 19 || axxand w: x2 + 8 || #axxu151 w: 5 || u131 w: 7 || natsFrom w: 6 || axxu103 w: 15 || isNaturalKind w: x1 + 7 || splitAt w: x2 + 7 || u52 w: x1 + x2 + 9 || #axxu11 w: 5 || axxu201 w: x1 + x2 + 1 || axxu102 w: 10 || u61 w: x1 + 6 || #axxu43 w: 0 || u92 w: 1 || axxu31 w: 15 || axxu72 w: 10 || u221 w: x1 + 2 || #axxisNaturalKind w: 1 || #axxu143 w: 0 || u151 w: x1 + x2 + x3 + 8 || u202 w: x1 + 7 || isNatural w: x1 + 7 || #axxu121 w: 1 || #axxsplitAt w: 1 || axxnatsFrom w: 5 || u41 w: x1 + 10 || axxisNatural w: 6 || u211 w: 2 || axxu151 w: 7 || #axxu112 w: 0 || axxu181 w: 4 || #axxu91 w: 0 || #axxu201 w: 0 || tail w: 1 || u51 w: x1 + x3 + 10 || #axxafterNth w: 5 || #mark w: x1 || #axxtail w: 5 || 0 w: 6 || axxu82 w: 5 || axxu141 w: x3 + 7 || #axxnatsFrom w: 5 || axxisPLNat w: 6 || axxu81 w: x1 + 1 || #axxu72 w: 0 || #axxisPLNat w: 5 || axxu152 w: x2 + 8 || u11 w: 2 || sel w: x2 + 7 || #axxisLNatKind w: x1 + 7 || afterNth w: x1 + 2 || #axxu62 w: 0 || #axxisPLNatKind w: 1 || #axxu161 w: 5 || nil w: 6 || #axxsnd w: 2 || isLNat w: x1 + 5 || #TIlDePAIR w: 0 || #axxu21 w: 1 || axxu41 w: x2 + x3 + 9 || #axxu142 w: 1 || #axxu202 w: 1 || axxafterNth w: x2 + 1 || mark w: 5 || #axxu152 w: 4 || axxu71 w: 9 || u101 w: 10 || #axxu81 w: 5 || axxsel w: 6 || u72 w: x1 + 11 || u201 w: 2 || u21 w: x2 + 20 || axxu52 w: 14 || u143 w: x1 + 12 || axxu122 w: 15 || isLNatKind w: x1 + 8 || #axxu52 w: x2 + 8 || axxu111 w: 7 || axxfst w: 18 || axxu61 w: 5 || u43 w: x1 + 2 || axxu171 w: x2 + x3 + 13 || u82 w: x1 + 6 || u161 w: 1 || #axxu31 w: 4 || axxisNaturalKind w: 6 || #axxand w: x2 + 1 || #axxsel w: 5 || #axxu42 w: 5 || axxu51 w: x2 + 13 || u171 w: x1 + 14 || axxu221 w: x1 + x2 + x3 + 1 || head w: x1 + 1 || cons w: x2 + 6 || axxu92 w: 19 || u142 w: x1 + 1 || snd w: 4 || #axxu41 w: 6 || axxtail w: 1 || u112 w: 8 || u42 w: 1 || tt w: 16 || #axxu191 w: 5 || axxu42 w: x1 || #axxu153 w: 0 || #axxu131 w: 5 || axxu153 w: 10 || u152 w: x1 + 9 || axxu161 w: 12 || axxisLNatKind w: 7 || axxu202 w: 6 || #axxu53 w: 0 || u71 w: x1 + 10 || axxtake w: x2 + 1 || #axxu61 w: 0 || axxu53 w: 15 || #axxfst w: 5 || #axxu171 w: 0 || axxu101 w: x2 + x3 + 9 || #axxu71 w: 5 || #axxisNatural w: 0 || axxu112 w: 8 || u31 w: 16 || u141 w: x2 + 8 || axxu21 w: 19 || #axxtake w: 5 || axxu43 w: x1 + 1 || #axxhead w: 2 || axxhead w: x1 + 8 || USABLE RULES: { 41 193 } || Removed DPs: #5 #24 #37 #38 #62 #80 #98 #102 #116 #119 #125 #129 #147 #150 #162..164 #171 #172 #204 #222 #223 #227 #228 #239 #244 || Number of SCCs: 0, DPs: 0 || We use the dependency pair framework as described in [Kop12, Ch. 6/7], with static dependency pairs (see [KusIsoSakBla09] and the adaptation for AFSMs and accessible arguments in [FuhKop19]). We thus obtain the following dependency pair problem (P_0, R_0, computable, formative): Dependency Pairs P_0: Rules R_0: axxu101(tt, X, Y) => axxu102(axxisNatural(X), Y) axxu102(tt, X) => axxu103(axxisLNat(X)) axxu103(tt) => tt axxu11(tt, X, Y) => axxsnd(axxsplitAt(mark(X), mark(Y))) axxu111(tt, X) => axxu112(axxisLNat(X)) axxu112(tt) => tt axxu121(tt, X) => axxu122(axxisNatural(X)) axxu122(tt) => tt axxu131(tt, X, Y) => axxu132(axxisNatural(X), Y) axxu132(tt, X) => axxu133(axxisLNat(X)) axxu133(tt) => tt axxu141(tt, X, Y) => axxu142(axxisLNat(X), Y) axxu142(tt, X) => axxu143(axxisLNat(X)) axxu143(tt) => tt axxu151(tt, X, Y) => axxu152(axxisNatural(X), Y) axxu152(tt, X) => axxu153(axxisLNat(X)) axxu153(tt) => tt axxu161(tt, X) => cons(mark(X), natsFrom(s(X))) axxu171(tt, X, Y) => axxhead(axxafterNth(mark(X), mark(Y))) axxu181(tt, X) => mark(X) axxu191(tt, X) => pair(nil, mark(X)) axxu201(tt, X, Y, Z) => axxu202(axxsplitAt(mark(X), mark(Z)), Y) axxu202(pair(X, Y), Z) => pair(cons(mark(Z), X), mark(Y)) axxu21(tt, X) => mark(X) axxu211(tt, X) => mark(X) axxu221(tt, X, Y) => axxfst(axxsplitAt(mark(X), mark(Y))) axxu31(tt, X) => mark(X) axxu41(tt, X, Y) => axxu42(axxisNatural(X), Y) axxu42(tt, X) => axxu43(axxisLNat(X)) axxu43(tt) => tt axxu51(tt, X, Y) => axxu52(axxisNatural(X), Y) axxu52(tt, X) => axxu53(axxisLNat(X)) axxu53(tt) => tt axxu61(tt, X) => axxu62(axxisPLNat(X)) axxu62(tt) => tt axxu71(tt, X) => axxu72(axxisNatural(X)) axxu72(tt) => tt axxu81(tt, X) => axxu82(axxisPLNat(X)) axxu82(tt) => tt axxu91(tt, X) => axxu92(axxisLNat(X)) axxu92(tt) => tt axxafterNth(X, Y) => axxu11(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxand(tt, X) => mark(X) axxfst(pair(X, Y)) => axxu21(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxhead(cons(X, Y)) => axxu31(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X) axxisLNat(nil) => tt axxisLNat(afterNth(X, Y)) => axxu41(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(cons(X, Y)) => axxu51(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNat(fst(X)) => axxu61(axxisPLNatKind(X), X) axxisLNat(natsFrom(X)) => axxu71(axxisNaturalKind(X), X) axxisLNat(snd(X)) => axxu81(axxisPLNatKind(X), X) axxisLNat(tail(X)) => axxu91(axxisLNatKind(X), X) axxisLNat(take(X, Y)) => axxu101(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisLNatKind(nil) => tt axxisLNatKind(afterNth(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(cons(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisLNatKind(fst(X)) => axxisPLNatKind(X) axxisLNatKind(natsFrom(X)) => axxisNaturalKind(X) axxisLNatKind(snd(X)) => axxisPLNatKind(X) axxisLNatKind(tail(X)) => axxisLNatKind(X) axxisLNatKind(take(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisNatural(0) => tt axxisNatural(head(X)) => axxu111(axxisLNatKind(X), X) axxisNatural(s(X)) => axxu121(axxisNaturalKind(X), X) axxisNatural(sel(X, Y)) => axxu131(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisNaturalKind(0) => tt axxisNaturalKind(head(X)) => axxisLNatKind(X) axxisNaturalKind(s(X)) => axxisNaturalKind(X) axxisNaturalKind(sel(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxisPLNat(pair(X, Y)) => axxu141(axxand(axxisLNatKind(X), isLNatKind(Y)), X, Y) axxisPLNat(splitAt(X, Y)) => axxu151(axxand(axxisNaturalKind(X), isLNatKind(Y)), X, Y) axxisPLNatKind(pair(X, Y)) => axxand(axxisLNatKind(X), isLNatKind(Y)) axxisPLNatKind(splitAt(X, Y)) => axxand(axxisNaturalKind(X), isLNatKind(Y)) axxnatsFrom(X) => axxu161(axxand(axxisNatural(X), isNaturalKind(X)), X) axxsel(X, Y) => axxu171(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) axxsnd(pair(X, Y)) => axxu181(axxand(axxand(axxisLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxsplitAt(0, X) => axxu191(axxand(axxisLNat(X), isLNatKind(X)), X) axxsplitAt(s(X), cons(Y, Z)) => axxu201(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(and(isNatural(Y), isNaturalKind(Y)), and(isLNat(Z), isLNatKind(Z)))), X, Y, Z) axxtail(cons(X, Y)) => axxu211(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), Y) axxtake(X, Y) => axxu221(axxand(axxand(axxisNatural(X), isNaturalKind(X)), and(isLNat(Y), isLNatKind(Y))), X, Y) mark(u101(X, Y, Z)) => axxu101(mark(X), Y, Z) mark(u102(X, Y)) => axxu102(mark(X), Y) mark(isNatural(X)) => axxisNatural(X) mark(u103(X)) => axxu103(mark(X)) mark(isLNat(X)) => axxisLNat(X) mark(u11(X, Y, Z)) => axxu11(mark(X), Y, Z) mark(snd(X)) => axxsnd(mark(X)) mark(splitAt(X, Y)) => axxsplitAt(mark(X), mark(Y)) mark(u111(X, Y)) => axxu111(mark(X), Y) mark(u112(X)) => axxu112(mark(X)) mark(u121(X, Y)) => axxu121(mark(X), Y) mark(u122(X)) => axxu122(mark(X)) mark(u131(X, Y, Z)) => axxu131(mark(X), Y, Z) mark(u132(X, Y)) => axxu132(mark(X), Y) mark(u133(X)) => axxu133(mark(X)) mark(u141(X, Y, Z)) => axxu141(mark(X), Y, Z) mark(u142(X, Y)) => axxu142(mark(X), Y) mark(u143(X)) => axxu143(mark(X)) mark(u151(X, Y, Z)) => axxu151(mark(X), Y, Z) mark(u152(X, Y)) => axxu152(mark(X), Y) mark(u153(X)) => axxu153(mark(X)) mark(u161(X, Y)) => axxu161(mark(X), Y) mark(natsFrom(X)) => axxnatsFrom(mark(X)) mark(u171(X, Y, Z)) => axxu171(mark(X), Y, Z) mark(head(X)) => axxhead(mark(X)) mark(afterNth(X, Y)) => axxafterNth(mark(X), mark(Y)) mark(u181(X, Y)) => axxu181(mark(X), Y) mark(u191(X, Y)) => axxu191(mark(X), Y) mark(u201(X, Y, Z, U)) => axxu201(mark(X), Y, Z, U) mark(u202(X, Y)) => axxu202(mark(X), Y) mark(u21(X, Y)) => axxu21(mark(X), Y) mark(u211(X, Y)) => axxu211(mark(X), Y) mark(u221(X, Y, Z)) => axxu221(mark(X), Y, Z) mark(fst(X)) => axxfst(mark(X)) mark(u31(X, Y)) => axxu31(mark(X), Y) mark(u41(X, Y, Z)) => axxu41(mark(X), Y, Z) mark(u42(X, Y)) => axxu42(mark(X), Y) mark(u43(X)) => axxu43(mark(X)) mark(u51(X, Y, Z)) => axxu51(mark(X), Y, Z) mark(u52(X, Y)) => axxu52(mark(X), Y) mark(u53(X)) => axxu53(mark(X)) mark(u61(X, Y)) => axxu61(mark(X), Y) mark(u62(X)) => axxu62(mark(X)) mark(isPLNat(X)) => axxisPLNat(X) mark(u71(X, Y)) => axxu71(mark(X), Y) mark(u72(X)) => axxu72(mark(X)) mark(u81(X, Y)) => axxu81(mark(X), Y) mark(u82(X)) => axxu82(mark(X)) mark(u91(X, Y)) => axxu91(mark(X), Y) mark(u92(X)) => axxu92(mark(X)) mark(and(X, Y)) => axxand(mark(X), Y) mark(isNaturalKind(X)) => axxisNaturalKind(X) mark(isLNatKind(X)) => axxisLNatKind(X) mark(isPLNatKind(X)) => axxisPLNatKind(X) mark(tail(X)) => axxtail(mark(X)) mark(take(X, Y)) => axxtake(mark(X), mark(Y)) mark(sel(X, Y)) => axxsel(mark(X), mark(Y)) mark(tt) => tt mark(cons(X, Y)) => cons(mark(X), Y) mark(s(X)) => s(mark(X)) mark(pair(X, Y)) => pair(mark(X), mark(Y)) mark(nil) => nil mark(0) => 0 axxu101(X, Y, Z) => u101(X, Y, Z) axxu102(X, Y) => u102(X, Y) axxisNatural(X) => isNatural(X) axxu103(X) => u103(X) axxisLNat(X) => isLNat(X) axxu11(X, Y, Z) => u11(X, Y, Z) axxsnd(X) => snd(X) axxsplitAt(X, Y) => splitAt(X, Y) axxu111(X, Y) => u111(X, Y) axxu112(X) => u112(X) axxu121(X, Y) => u121(X, Y) axxu122(X) => u122(X) axxu131(X, Y, Z) => u131(X, Y, Z) axxu132(X, Y) => u132(X, Y) axxu133(X) => u133(X) axxu141(X, Y, Z) => u141(X, Y, Z) axxu142(X, Y) => u142(X, Y) axxu143(X) => u143(X) axxu151(X, Y, Z) => u151(X, Y, Z) axxu152(X, Y) => u152(X, Y) axxu153(X) => u153(X) axxu161(X, Y) => u161(X, Y) axxnatsFrom(X) => natsFrom(X) axxu171(X, Y, Z) => u171(X, Y, Z) axxhead(X) => head(X) axxafterNth(X, Y) => afterNth(X, Y) axxu181(X, Y) => u181(X, Y) axxu191(X, Y) => u191(X, Y) axxu201(X, Y, Z, U) => u201(X, Y, Z, U) axxu202(X, Y) => u202(X, Y) axxu21(X, Y) => u21(X, Y) axxu211(X, Y) => u211(X, Y) axxu221(X, Y, Z) => u221(X, Y, Z) axxfst(X) => fst(X) axxu31(X, Y) => u31(X, Y) axxu41(X, Y, Z) => u41(X, Y, Z) axxu42(X, Y) => u42(X, Y) axxu43(X) => u43(X) axxu51(X, Y, Z) => u51(X, Y, Z) axxu52(X, Y) => u52(X, Y) axxu53(X) => u53(X) axxu61(X, Y) => u61(X, Y) axxu62(X) => u62(X) axxisPLNat(X) => isPLNat(X) axxu71(X, Y) => u71(X, Y) axxu72(X) => u72(X) axxu81(X, Y) => u81(X, Y) axxu82(X) => u82(X) axxu91(X, Y) => u91(X, Y) axxu92(X) => u92(X) axxand(X, Y) => and(X, Y) axxisNaturalKind(X) => isNaturalKind(X) axxisLNatKind(X) => isLNatKind(X) axxisPLNatKind(X) => isPLNatKind(X) axxtail(X) => tail(X) axxtake(X, Y) => take(X, Y) axxsel(X, Y) => sel(X, Y) map(/\x.X(x), nil) => nil app(/\x.X(x), Y) => X(Y) Thus, the original system is terminating if (P_0, R_0, computable, formative) is finite. We consider the dependency pair problem (P_0, R_0, computable, formative). We place the elements of P in a dependency graph approximation G (see e.g. [Kop12, Thm. 7.27, 7.29], as follows: This graph has no strongly connected components. By [Kop12, Thm. 7.31], this implies finiteness of the dependency pair problem. As all dependency pair problems were succesfully simplified with sound (and complete) processors until nothing remained, we conclude termination. +++ Citations +++ [FuhKop19] C. Fuhs, and C. Kop. A static higher-order dependency pair framework. In Proceedings of ESOP 2019, 2019. [Kop11] C. Kop. Simplifying Algebraic Functional Systems. In Proceedings of CAI 2011, volume 6742 of LNCS. 201--215, Springer, 2011. [Kop12] C. Kop. Higher Order Termination. PhD Thesis, 2012. [KusIsoSakBla09] K. Kusakari, Y. Isogai, M. Sakai, and F. Blanqui. Static Dependency Pair Method Based On Strong Computability for Higher-Order Rewrite Systems. In volume 92(10) of IEICE Transactions on Information and Systems. 2007--2015, 2009.