YES
R
↳Orthogonal Check
R
↳OrthoCSR
→TRS1
↳CSR to TRS Transformation
and(1,2)
splitAt(1, 2)
natsFrom(1)
U12(1,2)
take(1, 2)
tail(1)
sel(1, 2)
U11(1,2,3,4)
afterNth(1, 2)
pair(1, 2)
cons(1,2)
snd(1)
s(1)
fst(1)
head(1)
U11(tt, N, X, XS) -> U12(splitAt(N, XS), X)
U12(pair(YS, ZS), X) -> pair(cons(X, YS), ZS)
afterNth(N, XS) -> snd(splitAt(N, XS))
and(tt, X) -> X
fst(pair(X, Y)) -> X
head(cons(N, XS)) -> N
natsFrom(N) -> cons(N, natsFrom(s(N)))
sel(N, XS) -> head(afterNth(N, XS))
snd(pair(X, Y)) -> Y
splitAt(0, XS) -> pair(nil, XS)
splitAt(s(N), cons(X, XS)) -> U11(tt, N, X, XS)
tail(cons(N, XS)) -> XS
take(N, XS) -> fst(splitAt(N, XS))
U11(tt, N, X, XS) -> U12(splitAt(a(N), a(XS)), a(X))
U12(pair(YS, ZS), X) -> pair(cons(a(X), YS), ZS)
splitAt(0, XS) -> pair(nil, XS)
splitAt(s(N), cons(X, XS)) -> U11(tt, N, X, a(XS))
a(natsFrom(x0)) -> natsFrom(x0)
afterNth(N, XS) -> snd(splitAt(N, XS))
snd(pair(X, Y)) -> Y
and(tt, X) -> a(X)
fst(pair(X, Y)) -> X
head(cons(N, XS)) -> N
natsFrom(N) -> cons(N, natsFrom(s(N)))
natsFrom(x0) -> natsFrom(x0)
sel(N, XS) -> head(afterNth(N, XS))
tail(cons(N, XS)) -> a(XS)
take(N, XS) -> fst(splitAt(N, XS))
R
↳OrthoCSR
→TRS1
↳CSRtoTRS
→TRS2
↳Dependency Pair Analysis
U11'(tt, N, X, XS) -> U12'(splitAt(a(N), a(XS)), a(X))
U11'(tt, N, X, XS) -> SPLITAT(a(N), a(XS))
U11'(tt, N, X, XS) -> A(N)
U11'(tt, N, X, XS) -> A(XS)
U11'(tt, N, X, XS) -> A(X)
U12'(pair(YS, ZS), X) -> A(X)
SPLITAT(s(N), cons(X, XS)) -> U11'(tt, N, X, a(XS))
SPLITAT(s(N), cons(X, XS)) -> A(XS)
A(natsFrom(x0)) -> NATSFROM(x0)
AFTERNTH(N, XS) -> SND(splitAt(N, XS))
AFTERNTH(N, XS) -> SPLITAT(N, XS)
AND(tt, X) -> A(X)
SEL(N, XS) -> HEAD(afterNth(N, XS))
SEL(N, XS) -> AFTERNTH(N, XS)
TAIL(cons(N, XS)) -> A(XS)
TAKE(N, XS) -> FST(splitAt(N, XS))
TAKE(N, XS) -> SPLITAT(N, XS)
R
↳OrthoCSR
→TRS1
↳CSRtoTRS
→TRS2
↳DPs
...
→DP Problem 1
↳Negative Polynomial Order
SPLITAT(s(N), cons(X, XS)) -> U11'(tt, N, X, a(XS))
U11'(tt, N, X, XS) -> SPLITAT(a(N), a(XS))
U11(tt, N, X, XS) -> U12(splitAt(a(N), a(XS)), a(X))
U12(pair(YS, ZS), X) -> pair(cons(a(X), YS), ZS)
splitAt(0, XS) -> pair(nil, XS)
splitAt(s(N), cons(X, XS)) -> U11(tt, N, X, a(XS))
a(natsFrom(x0)) -> natsFrom(x0)
afterNth(N, XS) -> snd(splitAt(N, XS))
snd(pair(X, Y)) -> Y
and(tt, X) -> a(X)
fst(pair(X, Y)) -> X
head(cons(N, XS)) -> N
natsFrom(N) -> cons(N, natsFrom(s(N)))
natsFrom(x0) -> natsFrom(x0)
sel(N, XS) -> head(afterNth(N, XS))
tail(cons(N, XS)) -> a(XS)
take(N, XS) -> fst(splitAt(N, XS))
SPLITAT(s(N), cons(X, XS)) -> U11'(tt, N, X, a(XS))
a(natsFrom(x0)) -> natsFrom(x0)
natsFrom(N) -> cons(N, natsFrom(s(N)))
natsFrom(x0) -> natsFrom(x0)
POL( SPLITAT(x1, x2) ) = x1
POL( s(x1) ) = 1
POL( U11'(x1, ..., x4) ) = 0
POL( a(x1) ) = 0
POL( natsFrom(x1) ) = 0
POL( cons(x1, x2) ) = 0
POL( natsFrom(x1) ) = 0
R
↳OrthoCSR
→TRS1
↳CSRtoTRS
→TRS2
↳DPs
...
→DP Problem 2
↳Dependency Graph
U11'(tt, N, X, XS) -> SPLITAT(a(N), a(XS))
U11(tt, N, X, XS) -> U12(splitAt(a(N), a(XS)), a(X))
U12(pair(YS, ZS), X) -> pair(cons(a(X), YS), ZS)
splitAt(0, XS) -> pair(nil, XS)
splitAt(s(N), cons(X, XS)) -> U11(tt, N, X, a(XS))
a(natsFrom(x0)) -> natsFrom(x0)
afterNth(N, XS) -> snd(splitAt(N, XS))
snd(pair(X, Y)) -> Y
and(tt, X) -> a(X)
fst(pair(X, Y)) -> X
head(cons(N, XS)) -> N
natsFrom(N) -> cons(N, natsFrom(s(N)))
natsFrom(x0) -> natsFrom(x0)
sel(N, XS) -> head(afterNth(N, XS))
tail(cons(N, XS)) -> a(XS)
take(N, XS) -> fst(splitAt(N, XS))