TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60005 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (15526ms).
 | – Problem 2 was processed with processor DependencyGraph (1073ms).
 |    | – Problem 71 remains open; application of the following processors failed [].
 | – Problem 3 was processed with processor DependencyGraph (1090ms).
 |    | – Problem 72 remains open; application of the following processors failed [].
 | – Problem 4 was processed with processor DependencyGraph (249ms).
 |    | – Problem 73 remains open; application of the following processors failed [].
 | – Problem 5 was processed with processor DependencyGraph (1056ms).
 |    | – Problem 74 remains open; application of the following processors failed [].
 | – Problem 6 was processed with processor DependencyGraph (2ms).
 | – Problem 7 was processed with processor DependencyGraph (1050ms).
 |    | – Problem 75 remains open; application of the following processors failed [].
 | – Problem 8 was processed with processor DependencyGraph (1232ms).
 |    | – Problem 76 remains open; application of the following processors failed [].
 | – Problem 9 was processed with processor DependencyGraph (1051ms).
 |    | – Problem 77 remains open; application of the following processors failed [].
 | – Problem 10 was processed with processor DependencyGraph (1110ms).
 |    | – Problem 78 remains open; application of the following processors failed [].
 | – Problem 11 was processed with processor DependencyGraph (1057ms).
 |    | – Problem 79 remains open; application of the following processors failed [].
 | – Problem 12 was processed with processor DependencyGraph (1264ms).
 |    | – Problem 80 remains open; application of the following processors failed [].
 | – Problem 13 was processed with processor DependencyGraph (1ms).
 | – Problem 14 was processed with processor DependencyGraph (172ms).
 |    | – Problem 81 remains open; application of the following processors failed [].
 |    | – Problem 82 remains open; application of the following processors failed [].
 | – Problem 15 was processed with processor DependencyGraph (1262ms).
 |    | – Problem 83 remains open; application of the following processors failed [].
 | – Problem 16 was processed with processor DependencyGraph (159ms).
 |    | – Problem 84 remains open; application of the following processors failed [].
 |    | – Problem 85 remains open; application of the following processors failed [].
 | – Problem 17 remains open; application of the following processors failed [SubtermCriterion (0ms), DependencyGraph (122ms)].
 | – Problem 18 was processed with processor DependencyGraph (1ms).
 | – Problem 19 was processed with processor DependencyGraph (1080ms).
 |    | – Problem 86 remains open; application of the following processors failed [].
 | – Problem 20 was processed with processor DependencyGraph (1202ms).
 |    | – Problem 87 remains open; application of the following processors failed [].
 | – Problem 21 was processed with processor DependencyGraph (2ms).
 | – Problem 22 was processed with processor DependencyGraph (1ms).
 | – Problem 23 was processed with processor DependencyGraph (1051ms).
 |    | – Problem 88 remains open; application of the following processors failed [].
 | – Problem 24 was processed with processor DependencyGraph (1165ms).
 |    | – Problem 89 remains open; application of the following processors failed [].
 | – Problem 25 was processed with processor DependencyGraph (1ms).
 | – Problem 26 was processed with processor DependencyGraph (2ms).
 | – Problem 27 was processed with processor DependencyGraph (1107ms).
 |    | – Problem 90 remains open; application of the following processors failed [].
 | – Problem 28 was processed with processor DependencyGraph (932ms).
 |    | – Problem 92 remains open; application of the following processors failed [].
 |    | – Problem 93 remains open; application of the following processors failed [].
 | – Problem 29 was processed with processor DependencyGraph (1167ms).
 |    | – Problem 91 remains open; application of the following processors failed [].
 | – Problem 30 was processed with processor DependencyGraph (1135ms).
 |    | – Problem 94 remains open; application of the following processors failed [].
 | – Problem 31 was processed with processor DependencyGraph (2ms).
 | – Problem 32 was processed with processor DependencyGraph (36ms).
 |    | – Problem 97 remains open; application of the following processors failed [].
 | – Problem 33 was processed with processor DependencyGraph (1094ms).
 |    | – Problem 98 remains open; application of the following processors failed [].
 | – Problem 34 was processed with processor DependencyGraph (161ms).
 |    | – Problem 95 remains open; application of the following processors failed [].
 |    | – Problem 96 remains open; application of the following processors failed [].
 | – Problem 35 was processed with processor DependencyGraph (1ms).
 | – Problem 36 was processed with processor DependencyGraph (1101ms).
 |    | – Problem 101 remains open; application of the following processors failed [].
 | – Problem 37 was processed with processor DependencyGraph (1048ms).
 |    | – Problem 102 remains open; application of the following processors failed [].
 | – Problem 38 was processed with processor DependencyGraph (1110ms).
 |    | – Problem 99 remains open; application of the following processors failed [].
 | – Problem 39 was processed with processor DependencyGraph (1050ms).
 |    | – Problem 100 remains open; application of the following processors failed [].
 | – Problem 40 was processed with processor DependencyGraph (1325ms).
 |    | – Problem 104 remains open; application of the following processors failed [].
 | – Problem 41 was processed with processor DependencyGraph (1ms).
 | – Problem 42 was processed with processor DependencyGraph (34ms).
 | – Problem 43 was processed with processor DependencyGraph (1053ms).
 |    | – Problem 103 remains open; application of the following processors failed [].
 | – Problem 44 was processed with processor DependencyGraph (1235ms).
 |    | – Problem 106 remains open; application of the following processors failed [].
 | – Problem 45 was processed with processor DependencyGraph (1018ms).
 |    | – Problem 107 remains open; application of the following processors failed [].
 | – Problem 46 was processed with processor DependencyGraph (2ms).
 | – Problem 47 was processed with processor DependencyGraph (1046ms).
 |    | – Problem 105 remains open; application of the following processors failed [].
 | – Problem 48 was processed with processor DependencyGraph (1ms).
 | – Problem 49 was processed with processor DependencyGraph (172ms).
 |    | – Problem 110 remains open; application of the following processors failed [].
 |    | – Problem 111 remains open; application of the following processors failed [].
 | – Problem 50 was processed with processor DependencyGraph (1050ms).
 |    | – Problem 109 remains open; application of the following processors failed [].
 | – Problem 51 was processed with processor DependencyGraph (1077ms).
 |    | – Problem 108 remains open; application of the following processors failed [].
 | – Problem 52 was processed with processor DependencyGraph (1298ms).
 |    | – Problem 115 remains open; application of the following processors failed [].
 | – Problem 53 was processed with processor DependencyGraph (1061ms).
 |    | – Problem 114 remains open; application of the following processors failed [].
 | – Problem 54 was processed with processor DependencyGraph (59ms).
 |    | – Problem 113 remains open; application of the following processors failed [].
 | – Problem 55 was processed with processor DependencyGraph (1083ms).
 |    | – Problem 112 remains open; application of the following processors failed [].
 | – Problem 56 was processed with processor DependencyGraph (2ms).
 | – Problem 57 was processed with processor DependencyGraph (1140ms).
 |    | – Problem 118 remains open; application of the following processors failed [].
 | – Problem 58 was processed with processor DependencyGraph (1078ms).
 |    | – Problem 117 remains open; application of the following processors failed [].
 | – Problem 59 was processed with processor DependencyGraph (1047ms).
 |    | – Problem 116 remains open; application of the following processors failed [].
 | – Problem 60 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 61 remains open; application of the following processors failed [SubtermCriterion (0ms), DependencyGraph (timeout)].
 | – Problem 62 was processed with processor DependencyGraph (631ms).
 |    | – Problem 120 remains open; application of the following processors failed [].
 | – Problem 63 was processed with processor DependencyGraph (1361ms).
 |    | – Problem 119 remains open; application of the following processors failed [].
 | – Problem 64 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 65 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 66 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 67 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 68 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 69 remains open; application of the following processors failed [SubtermCriterion (0ms)].
 | – Problem 70 remains open; application of the following processors failed [SubtermCriterion (0ms)].

The following open problems remain:



Open Dependency Pair Problem 2

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U105#(tt, V2)U106#(isLNat(V2))U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 3

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 4

Dependency Pairs

U343#(tt, N, XS)U344#(isLNatKind(XS), N, XS)U327#(pair(YS, ZS), X)T(X)
U22#(tt, X, Y)isLNat#(Y)fst#(pair(X, Y))isLNat#(X)
splitAt#(s(N), cons(X, XS))isNatural#(N)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
fst#(pair(X, Y))U21#(isLNat(X), X, Y)U325#(tt, N, X, XS)isLNatKind#(XS)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)U324#(tt, N, X, XS)isLNat#(XS)
U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)U312#(tt, XS)T(XS)
U344#(tt, N, XS)splitAt#(N, XS)U311#(tt, XS)isLNatKind#(XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
U21#(tt, X, Y)U22#(isLNatKind(X), X, Y)U344#(tt, N, XS)fst#(splitAt(N, XS))
U323#(tt, N, X, XS)isNaturalKind#(X)U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)
U326#(tt, N, X, XS)T(XS)splitAt#(0, XS)isLNat#(XS)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)U24#(tt, X)T(X)
U23#(tt, X, Y)isLNatKind#(Y)U21#(tt, X, Y)isLNatKind#(X)
U326#(tt, N, X, XS)T(N)U321#(tt, N, X, XS)isNaturalKind#(N)
U22#(tt, X, Y)U23#(isLNat(Y), X, Y)U344#(tt, N, XS)T(N)
U326#(tt, N, X, XS)splitAt#(N, XS)U311#(tt, XS)U312#(isLNatKind(XS), XS)
U23#(tt, X, Y)U24#(isLNatKind(Y), X)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 5

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 7

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2)U56#(isLNat(V2))U82#(tt, V1)isPLNat#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 8

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U243#(tt, V1, V2)isLNatKind#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 9

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 10

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 11

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2)U56#(isLNat(V2))U82#(tt, V1)isPLNat#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 12

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U243#(tt, V1, V2)isLNatKind#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U241#(tt, V1, V2)isLNatKind#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 14

Dependency Pairs

U281#(tt, N)U282#(isNaturalKind(N), N)U327#(pair(YS, ZS), X)T(X)
splitAt#(s(N), cons(X, XS))isNatural#(N)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
U325#(tt, N, X, XS)isLNatKind#(XS)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U282#(tt, N)T(N)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
T(s(x_1))T(x_1)U323#(tt, N, X, XS)isNaturalKind#(X)
U326#(tt, N, X, XS)T(XS)U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)
splitAt#(0, XS)isLNat#(XS)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U326#(tt, N, X, XS)T(N)U321#(tt, N, X, XS)isNaturalKind#(N)
U326#(tt, N, X, XS)splitAt#(N, XS)U281#(tt, N)isNaturalKind#(N)
U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 15

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 17

Dependency Pairs

U271#(tt, V2)isLNatKind#(V2)isNaturalKind#(head(V1))isLNatKind#(V1)
U231#(tt, V2)isLNatKind#(V2)U121#(tt, V2)isLNatKind#(V2)
U261#(tt, V2)isLNatKind#(V2)isLNatKind#(natsFrom(V1))isNaturalKind#(V1)
isPLNatKind#(splitAt(V1, V2))isNaturalKind#(V1)isNaturalKind#(sel(V1, V2))isNaturalKind#(V1)
isLNatKind#(afterNth(V1, V2))U111#(isNaturalKind(V1), V2)isNaturalKind#(s(V1))isNaturalKind#(V1)
isLNatKind#(tail(V1))isLNatKind#(V1)isLNatKind#(snd(V1))isPLNatKind#(V1)
U171#(tt, V2)isLNatKind#(V2)isLNatKind#(afterNth(V1, V2))isNaturalKind#(V1)
isPLNatKind#(splitAt(V1, V2))U271#(isNaturalKind(V1), V2)isNaturalKind#(sel(V1, V2))U231#(isNaturalKind(V1), V2)
isLNatKind#(fst(V1))isPLNatKind#(V1)isLNatKind#(take(V1, V2))isNaturalKind#(V1)
isPLNatKind#(pair(V1, V2))isLNatKind#(V1)U111#(tt, V2)isLNatKind#(V2)
isLNatKind#(take(V1, V2))U171#(isNaturalKind(V1), V2)isPLNatKind#(pair(V1, V2))U261#(isLNatKind(V1), V2)
isLNatKind#(cons(V1, V2))isNaturalKind#(V1)isLNatKind#(cons(V1, V2))U121#(isNaturalKind(V1), V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 16

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U281#(tt, N)U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS))isNatural#(N)
U325#(tt, N, X, XS)isLNatKind#(XS)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U282#(tt, N)T(N)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
T(s(x_1))T(x_1)U323#(tt, N, X, XS)isNaturalKind#(X)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)U326#(tt, N, X, XS)T(XS)
splitAt#(0, XS)isLNat#(XS)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U322#(tt, N, X, XS)isNatural#(X)
U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U326#(tt, N, X, XS)T(N)U326#(tt, N, X, XS)splitAt#(N, XS)
U281#(tt, N)isNaturalKind#(N)U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 19

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U243#(tt, V1, V2)isLNatKind#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U241#(tt, V1, V2)isLNatKind#(V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 20

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 23

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 24

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 27

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 29

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 28

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
splitAt#(s(N), cons(X, XS))isNatural#(N)U282#(tt, N)T(N)
U34#(tt, N)T(N)U33#(tt, N, XS)isLNatKind#(XS)
U14#(tt, N, XS)T(N)U14#(tt, N, XS)snd#(splitAt(N, XS))
U311#(tt, XS)isLNatKind#(XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)head#(cons(N, XS))isNatural#(N)
U294#(tt, N, XS)T(XS)T(s(x_1))T(x_1)
U294#(tt, N, XS)head#(afterNth(N, XS))U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)
U326#(tt, N, X, XS)T(XS)snd#(pair(X, Y))isLNat#(X)
splitAt#(0, XS)isLNat#(XS)U322#(tt, N, X, XS)isNatural#(X)
U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)U303#(tt, Y)isLNatKind#(Y)
natsFrom#(N)isNatural#(N)T(natsFrom(s(N)))natsFrom#(s(N))
U294#(tt, N, XS)afterNth#(N, XS)U326#(tt, N, X, XS)splitAt#(N, XS)
U304#(tt, Y)T(Y)U12#(tt, N, XS)U13#(isLNat(XS), N, XS)
U302#(tt, Y)U303#(isLNat(Y), Y)U281#(tt, N)U282#(isNaturalKind(N), N)
U13#(tt, N, XS)isLNatKind#(XS)U294#(tt, N, XS)T(N)
U292#(tt, N, XS)U293#(isLNat(XS), N, XS)U12#(tt, N, XS)isLNat#(XS)
U325#(tt, N, X, XS)isLNatKind#(XS)U303#(tt, Y)U304#(isLNatKind(Y), Y)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)U301#(tt, X, Y)U302#(isLNatKind(X), Y)
U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)U324#(tt, N, X, XS)isLNat#(XS)
U312#(tt, XS)T(XS)snd#(pair(X, Y))U301#(isLNat(X), X, Y)
U323#(tt, N, X, XS)isNaturalKind#(X)U31#(tt, N, XS)isNaturalKind#(N)
U302#(tt, Y)isLNat#(Y)U31#(tt, N, XS)U32#(isNaturalKind(N), N, XS)
afterNth#(N, XS)isNatural#(N)U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)
U14#(tt, N, XS)T(XS)T(natsFrom(x_1))T(x_1)
head#(cons(N, XS))U31#(isNatural(N), N, XS)U293#(tt, N, XS)isLNatKind#(XS)
U33#(tt, N, XS)U34#(isLNatKind(XS), N)natsFrom#(N)U281#(isNatural(N), N)
U32#(tt, N, XS)isLNat#(XS)U13#(tt, N, XS)U14#(isLNatKind(XS), N, XS)
U321#(tt, N, X, XS)isNaturalKind#(N)U11#(tt, N, XS)isNaturalKind#(N)
U326#(tt, N, X, XS)T(N)U32#(tt, N, XS)U33#(isLNat(XS), N, XS)
afterNth#(N, XS)U11#(isNatural(N), N, XS)U301#(tt, X, Y)isLNatKind#(X)
U14#(tt, N, XS)splitAt#(N, XS)U281#(tt, N)isNaturalKind#(N)
U291#(tt, N, XS)U292#(isNaturalKind(N), N, XS)U11#(tt, N, XS)U12#(isNaturalKind(N), N, XS)
U311#(tt, XS)U312#(isLNatKind(XS), XS)U293#(tt, N, XS)U294#(isLNatKind(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 30

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 34

Dependency Pairs

U281#(tt, N)U282#(isNaturalKind(N), N)U327#(pair(YS, ZS), X)T(X)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U282#(tt, N)T(N)U324#(tt, N, X, XS)isLNat#(XS)
U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)U312#(tt, XS)T(XS)
U311#(tt, XS)isLNatKind#(XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)T(s(x_1))T(x_1)
U323#(tt, N, X, XS)isNaturalKind#(X)U326#(tt, N, X, XS)T(XS)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)splitAt#(0, XS)isLNat#(XS)
U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)U322#(tt, N, X, XS)isNatural#(X)
natsFrom#(N)isNatural#(N)T(natsFrom(s(N)))natsFrom#(s(N))
natsFrom#(N)U281#(isNatural(N), N)U326#(tt, N, X, XS)T(N)
U321#(tt, N, X, XS)isNaturalKind#(N)U326#(tt, N, X, XS)splitAt#(N, XS)
U281#(tt, N)isNaturalKind#(N)U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 32

Dependency Pairs

T(natsFrom(x_1))T(x_1)U281#(tt, N)U282#(isNaturalKind(N), N)
U333#(tt, XS)isLNatKind#(XS)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U282#(tt, N)T(N)U334#(tt, XS)T(XS)
T(s(x_1))T(x_1)U333#(tt, XS)U334#(isLNatKind(XS), XS)
U281#(tt, N)isNaturalKind#(N)U332#(tt, XS)U333#(isLNat(XS), XS)
U331#(tt, N, XS)U332#(isNaturalKind(N), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 33

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 38

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U82#(tt, V1)isPLNat#(V1)
U251#(tt, V1, V2)isNaturalKind#(V1)U182#(tt, V1)U183#(isLNat(V1))
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2)isLNatKind#(V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 39

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 36

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U105#(tt, V2)U106#(isLNat(V2))U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 37

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 43

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 40

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U243#(tt, V1, V2)isLNatKind#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 47

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U243#(tt, V1, V2)isLNatKind#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 44

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 45

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U105#(tt, V2)U106#(isLNat(V2))
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 51

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 50

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 49

Dependency Pairs

U281#(tt, N)U282#(isNaturalKind(N), N)U327#(pair(YS, ZS), X)T(X)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)U325#(tt, N, X, XS)isLNatKind#(XS)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)U282#(tt, N)T(N)
U324#(tt, N, X, XS)isLNat#(XS)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
T(s(x_1))T(x_1)U323#(tt, N, X, XS)isNaturalKind#(X)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)U326#(tt, N, X, XS)T(XS)
T(natsFrom(x_1))T(x_1)U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)
splitAt#(0, XS)isLNat#(XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U321#(tt, N, X, XS)isNaturalKind#(N)U326#(tt, N, X, XS)T(N)
U326#(tt, N, X, XS)splitAt#(N, XS)U281#(tt, N)isNaturalKind#(N)
U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 55

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 54

Dependency Pairs

T(natsFrom(x_1))T(x_1)U281#(tt, N)U282#(isNaturalKind(N), N)
U22#(tt, X, Y)isLNat#(Y)U24#(tt, X)T(X)
natsFrom#(N)isNatural#(N)fst#(pair(X, Y))U21#(isLNat(X), X, Y)
U23#(tt, X, Y)isLNatKind#(Y)T(natsFrom(s(N)))natsFrom#(s(N))
natsFrom#(N)U281#(isNatural(N), N)U21#(tt, X, Y)isLNatKind#(X)
U282#(tt, N)T(N)U22#(tt, X, Y)U23#(isLNat(Y), X, Y)
U21#(tt, X, Y)U22#(isLNatKind(X), X, Y)T(s(x_1))T(x_1)
U344#(tt, N, XS)fst#(splitAt(N, XS))U281#(tt, N)isNaturalKind#(N)
U23#(tt, X, Y)U24#(isLNatKind(Y), X)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 53

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2)isLNatKind#(V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 52

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U182#(tt, V1)U183#(isLNat(V1))
U251#(tt, V1, V2)isNaturalKind#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U243#(tt, V1, V2)isLNatKind#(V2)
U255#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2)isLNatKind#(V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U241#(tt, V1, V2)isLNatKind#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 59

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 58

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1)isPLNatKind#(V1)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 57

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 63

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U243#(tt, V1, V2)isLNatKind#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U105#(tt, V2)U106#(isLNat(V2))
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 62

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
splitAt#(s(N), cons(X, XS))isNatural#(N)U34#(tt, N)T(N)
U33#(tt, N, XS)isLNatKind#(XS)U14#(tt, N, XS)T(N)
U14#(tt, N, XS)snd#(splitAt(N, XS))U311#(tt, XS)isLNatKind#(XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
head#(cons(N, XS))isNatural#(N)U294#(tt, N, XS)T(XS)
U294#(tt, N, XS)head#(afterNth(N, XS))U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)
U326#(tt, N, X, XS)T(XS)snd#(pair(X, Y))isLNat#(X)
splitAt#(0, XS)isLNat#(XS)U322#(tt, N, X, XS)isNatural#(X)
U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)U303#(tt, Y)isLNatKind#(Y)
U294#(tt, N, XS)afterNth#(N, XS)U326#(tt, N, X, XS)splitAt#(N, XS)
U304#(tt, Y)T(Y)U12#(tt, N, XS)U13#(isLNat(XS), N, XS)
U302#(tt, Y)U303#(isLNat(Y), Y)U13#(tt, N, XS)isLNatKind#(XS)
U12#(tt, N, XS)isLNat#(XS)U325#(tt, N, X, XS)isLNatKind#(XS)
U303#(tt, Y)U304#(isLNatKind(Y), Y)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U301#(tt, X, Y)U302#(isLNatKind(X), Y)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U324#(tt, N, X, XS)isLNat#(XS)U312#(tt, XS)T(XS)
snd#(pair(X, Y))U301#(isLNat(X), X, Y)U323#(tt, N, X, XS)isNaturalKind#(X)
U31#(tt, N, XS)isNaturalKind#(N)U302#(tt, Y)isLNat#(Y)
U31#(tt, N, XS)U32#(isNaturalKind(N), N, XS)afterNth#(N, XS)isNatural#(N)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U14#(tt, N, XS)T(XS)
head#(cons(N, XS))U31#(isNatural(N), N, XS)U33#(tt, N, XS)U34#(isLNatKind(XS), N)
U32#(tt, N, XS)isLNat#(XS)U13#(tt, N, XS)U14#(isLNatKind(XS), N, XS)
U321#(tt, N, X, XS)isNaturalKind#(N)U11#(tt, N, XS)isNaturalKind#(N)
U326#(tt, N, X, XS)T(N)U32#(tt, N, XS)U33#(isLNat(XS), N, XS)
afterNth#(N, XS)U11#(isNatural(N), N, XS)U301#(tt, X, Y)isLNatKind#(X)
U14#(tt, N, XS)splitAt#(N, XS)U11#(tt, N, XS)U12#(isNaturalKind(N), N, XS)
U311#(tt, XS)U312#(isLNatKind(XS), XS)U293#(tt, N, XS)U294#(isLNatKind(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 61

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U243#(tt, V1, V2)isLNatKind#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U241#(tt, V1, V2)isLNatKind#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 60

Dependency Pairs

U302#(tt, Y)U303#(isLNat(Y), Y)T(natsFrom(x_1))T(x_1)
U281#(tt, N)U282#(isNaturalKind(N), N)U303#(tt, Y)isLNatKind#(Y)
natsFrom#(N)isNatural#(N)T(natsFrom(s(N)))natsFrom#(s(N))
natsFrom#(N)U281#(isNatural(N), N)U303#(tt, Y)U304#(isLNatKind(Y), Y)
U282#(tt, N)T(N)U301#(tt, X, Y)U302#(isLNatKind(X), Y)
T(s(x_1))T(x_1)U304#(tt, Y)T(Y)
U281#(tt, N)isNaturalKind#(N)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 68

Dependency Pairs

head#(cons(N, XS))isNatural#(N)U294#(tt, N, XS)head#(afterNth(N, XS))

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 69

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 70

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1)isPLNatKind#(V1)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 64

Dependency Pairs

T(natsFrom(x_1))T(x_1)U281#(tt, N)U282#(isNaturalKind(N), N)
U24#(tt, X)T(X)natsFrom#(N)isNatural#(N)
U23#(tt, X, Y)isLNatKind#(Y)T(natsFrom(s(N)))natsFrom#(s(N))
natsFrom#(N)U281#(isNatural(N), N)U282#(tt, N)T(N)
U22#(tt, X, Y)U23#(isLNat(Y), X, Y)U21#(tt, X, Y)U22#(isLNatKind(X), X, Y)
T(s(x_1))T(x_1)U281#(tt, N)isNaturalKind#(N)
U23#(tt, X, Y)U24#(isLNatKind(Y), X)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 65

Dependency Pairs

T(natsFrom(x_1))T(x_1)U281#(tt, N)U282#(isNaturalKind(N), N)
T(s(x_1))T(x_1)U281#(tt, N)isNaturalKind#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U282#(tt, N)T(N)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 66

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil




Open Dependency Pair Problem 67

Dependency Pairs

U33#(tt, N, XS)isLNatKind#(XS)U32#(tt, N, XS)U33#(isLNat(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U63, U111, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, tail, U193, U192, U71, U191, U73, U72, 0, U122, U121, U262, U261, pair, U331, U332, U333, U334, U46, U325, U45, U324, U44, U327, U43, U131, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, U171, isNaturalKind, U172, U272, U83, U271, U201, U202, U14, take, U82, U301, U81, U11, U12, U13, U102, sel, U103, U101, nil


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U191#(tt, V1)U192#(isNaturalKind(V1), V1)U333#(tt, XS)isLNatKind#(XS)
splitAt#(s(N), cons(X, XS))isNatural#(N)tail#(cons(N, XS))isNatural#(N)
isPLNat#(splitAt(V1, V2))isNaturalKind#(V1)U282#(tt, N)T(N)
U231#(tt, V2)isLNatKind#(V2)U14#(tt, N, XS)T(N)
U33#(tt, N, XS)isLNatKind#(XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U21#(tt, X, Y)U22#(isLNatKind(X), X, Y)
isLNat#(snd(V1))isPLNatKind#(V1)U344#(tt, N, XS)fst#(splitAt(N, XS))
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)isLNatKind#(tail(V1))U161#(isLNatKind(V1))
isNaturalKind#(sel(V1, V2))isNaturalKind#(V1)isLNatKind#(afterNth(V1, V2))U111#(isNaturalKind(V1), V2)
U171#(tt, V2)U172#(isLNatKind(V2))U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U231#(tt, V2)U232#(isLNatKind(V2))
U171#(tt, V2)isLNatKind#(V2)isPLNatKind#(splitAt(V1, V2))U271#(isNaturalKind(V1), V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)isLNat#(cons(V1, V2))isNaturalKind#(V1)
isLNatKind#(cons(V1, V2))isNaturalKind#(V1)U331#(tt, N, XS)isNaturalKind#(N)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U342#(tt, N, XS)isLNat#(XS)U92#(tt, V1)U93#(isLNat(V1))
isNaturalKind#(s(V1))U221#(isNaturalKind(V1))U292#(tt, N, XS)U293#(isLNat(XS), N, XS)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)isLNatKind#(snd(V1))U151#(isPLNatKind(V1))
U303#(tt, Y)U304#(isLNatKind(Y), Y)U52#(tt, V1, V2)isLNatKind#(V2)
U62#(tt, V1)U63#(isPLNat(V1))U324#(tt, N, X, XS)isLNat#(XS)
isPLNat#(pair(V1, V2))isLNatKind#(V1)U121#(tt, V2)isLNatKind#(V2)
U261#(tt, V2)isLNatKind#(V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)snd#(pair(X, Y))U301#(isLNat(X), X, Y)
isLNat#(tail(V1))isLNatKind#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
isPLNatKind#(splitAt(V1, V2))isNaturalKind#(V1)isNatural#(head(V1))isLNatKind#(V1)
U341#(tt, N, XS)isNaturalKind#(N)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U101#(tt, V1, V2)isNaturalKind#(V1)
natsFrom#(N)U281#(isNatural(N), N)U32#(tt, N, XS)isLNat#(XS)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)U326#(tt, N, X, XS)T(N)
U32#(tt, N, XS)U33#(isLNat(XS), N, XS)afterNth#(N, XS)U11#(isNatural(N), N, XS)
isLNatKind#(take(V1, V2))isNaturalKind#(V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U41#(tt, V1, V2)isNaturalKind#(V1)U344#(tt, N, XS)T(N)
U244#(tt, V1, V2)isLNat#(V1)U103#(tt, V1, V2)isLNatKind#(V2)
U11#(tt, N, XS)U12#(isNaturalKind(N), N, XS)U342#(tt, N, XS)U343#(isLNat(XS), N, XS)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)isLNat#(take(V1, V2))isNaturalKind#(V1)
U34#(tt, N)T(N)isLNat#(natsFrom(V1))isNaturalKind#(V1)
U251#(tt, V1, V2)isNaturalKind#(V1)T(s(x_1))T(x_1)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U326#(tt, N, X, XS)T(XS)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)U245#(tt, V2)U246#(isLNat(V2))
U253#(tt, V1, V2)isLNatKind#(V2)snd#(pair(X, Y))isLNat#(X)
splitAt#(0, XS)isLNat#(XS)U243#(tt, V1, V2)isLNatKind#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)isLNatKind#(snd(V1))isPLNatKind#(V1)
T(natsFrom(s(N)))natsFrom#(s(N))U294#(tt, N, XS)afterNth#(N, XS)
U252#(tt, V1, V2)isLNatKind#(V2)isLNatKind#(fst(V1))isPLNatKind#(V1)
U81#(tt, V1)isPLNatKind#(V1)U326#(tt, N, X, XS)splitAt#(N, XS)
U304#(tt, Y)T(Y)isPLNatKind#(pair(V1, V2))U261#(isLNatKind(V1), V2)
U241#(tt, V1, V2)isLNatKind#(V1)U271#(tt, V2)U272#(isLNatKind(V2))
U12#(tt, N, XS)U13#(isLNat(XS), N, XS)tail#(cons(N, XS))U331#(isNatural(N), N, XS)
U331#(tt, N, XS)U332#(isNaturalKind(N), XS)U23#(tt, X, Y)U24#(isLNatKind(Y), X)
U22#(tt, X, Y)isLNat#(Y)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U12#(tt, N, XS)isLNat#(XS)U91#(tt, V1)isLNatKind#(V1)
fst#(pair(X, Y))U21#(isLNat(X), X, Y)take#(N, XS)isNatural#(N)
isNaturalKind#(head(V1))isLNatKind#(V1)U325#(tt, N, X, XS)isLNatKind#(XS)
U301#(tt, X, Y)U302#(isLNatKind(X), Y)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U203#(tt, V1, V2)isLNatKind#(V2)
isNatural#(sel(V1, V2))isNaturalKind#(V1)U254#(tt, V1, V2)isNatural#(V1)
isNatural#(s(V1))isNaturalKind#(V1)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U31#(tt, N, XS)isNaturalKind#(N)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U105#(tt, V2)U106#(isLNat(V2))afterNth#(N, XS)isNatural#(N)
U14#(tt, N, XS)T(XS)U24#(tt, X)T(X)
U344#(tt, N, XS)T(XS)U293#(tt, N, XS)isLNatKind#(XS)
U192#(tt, V1)U193#(isNatural(V1))U23#(tt, X, Y)isLNatKind#(Y)
isLNatKind#(afterNth(V1, V2))isNaturalKind#(V1)U11#(tt, N, XS)isNaturalKind#(N)
isLNat#(fst(V1))isPLNatKind#(V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U72#(tt, V1)U73#(isNatural(V1))
U291#(tt, N, XS)U292#(isNaturalKind(N), N, XS)U311#(tt, XS)U312#(isLNatKind(XS), XS)
isLNatKind#(cons(V1, V2))U121#(isNaturalKind(V1), V2)U202#(tt, V1, V2)isLNatKind#(V2)
U261#(tt, V2)U262#(isLNatKind(V2))U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2)isNaturalKind#(V1)U121#(tt, V2)U122#(isLNatKind(V2))
U82#(tt, V1)isPLNat#(V1)U311#(tt, XS)isLNatKind#(XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)head#(cons(N, XS))isNatural#(N)
U294#(tt, N, XS)head#(afterNth(N, XS))U332#(tt, XS)isLNat#(XS)
U245#(tt, V2)isLNat#(V2)U341#(tt, N, XS)U342#(isNaturalKind(N), N, XS)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U322#(tt, N, X, XS)isNatural#(X)U303#(tt, Y)isLNatKind#(Y)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2)isLNatKind#(V2)isNaturalKind#(sel(V1, V2))U231#(isNaturalKind(V1), V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isPLNatKind#(pair(V1, V2))isLNatKind#(V1)
U291#(tt, N, XS)isNaturalKind#(N)U111#(tt, V2)isLNatKind#(V2)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
isLNatKind#(take(V1, V2))U171#(isNaturalKind(V1), V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U242#(tt, V1, V2)isLNatKind#(V2)sel#(N, XS)U291#(isNatural(N), N, XS)
U302#(tt, Y)U303#(isLNat(Y), Y)U294#(tt, N, XS)T(N)
U111#(tt, V2)U112#(isLNatKind(V2))U255#(tt, V2)U256#(isLNat(V2))
U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)U312#(tt, XS)T(XS)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U323#(tt, N, X, XS)isNaturalKind#(X)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U292#(tt, N, XS)isLNat#(XS)U181#(tt, V1)isLNatKind#(V1)
T(natsFrom(x_1))T(x_1)U42#(tt, V1, V2)isLNatKind#(V2)
isNaturalKind#(s(V1))isNaturalKind#(V1)head#(cons(N, XS))U31#(isNatural(N), N, XS)
U33#(tt, N, XS)U34#(isLNatKind(XS), N)U21#(tt, X, Y)isLNatKind#(X)
U13#(tt, N, XS)U14#(isLNatKind(XS), N, XS)U321#(tt, N, X, XS)isNaturalKind#(N)
U301#(tt, X, Y)isLNatKind#(X)U334#(tt, XS)T(XS)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U14#(tt, N, XS)splitAt#(N, XS)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U45#(tt, V2)isLNat#(V2)U343#(tt, N, XS)U344#(isLNatKind(XS), N, XS)
U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U327#(pair(YS, ZS), X)T(X)
U71#(tt, V1)isNaturalKind#(V1)U45#(tt, V2)U46#(isLNat(V2))
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2)U56#(isLNat(V2))U14#(tt, N, XS)snd#(splitAt(N, XS))
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U294#(tt, N, XS)T(XS)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)isLNatKind#(fst(V1))U131#(isPLNatKind(V1))
isLNat#(afterNth(V1, V2))isNaturalKind#(V1)U255#(tt, V2)isLNat#(V2)
natsFrom#(N)isNatural#(N)take#(N, XS)U341#(isNatural(N), N, XS)
U333#(tt, XS)U334#(isLNatKind(XS), XS)U192#(tt, V1)isNatural#(V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)fst#(pair(X, Y))isLNat#(X)
U281#(tt, N)U282#(isNaturalKind(N), N)U13#(tt, N, XS)isLNatKind#(XS)
sel#(N, XS)isNatural#(N)U191#(tt, V1)isNaturalKind#(V1)
isNaturalKind#(head(V1))U211#(isLNatKind(V1))U104#(tt, V1, V2)isNatural#(V1)
U271#(tt, V2)isLNatKind#(V2)U343#(tt, N, XS)isLNatKind#(XS)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U344#(tt, N, XS)splitAt#(N, XS)isLNatKind#(natsFrom(V1))U141#(isNaturalKind(V1))
U332#(tt, XS)U333#(isLNat(XS), XS)isLNatKind#(natsFrom(V1))isNaturalKind#(V1)
U31#(tt, N, XS)U32#(isNaturalKind(N), N, XS)U302#(tt, Y)isLNat#(Y)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)
isLNatKind#(tail(V1))isLNatKind#(V1)U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U22#(tt, X, Y)U23#(isLNat(Y), X, Y)
U281#(tt, N)isNaturalKind#(N)U293#(tt, N, XS)U294#(isLNatKind(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U202#) = μ(U262#) = μ(U193) = μ(tail) = μ(U192) = μ(U191) = μ(U242#) = μ(U232#) = μ(U252#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U55#) = μ(U151) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U91) = μ(U251#) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U82) = μ(U301) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(fst#) = μ(U31#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U83#) = μ(U242) = μ(U241) = μ(U141#) = μ(U34#) = μ(U342#) = μ(U327#) = μ(U246#) = μ(U21#) = μ(U204) = μ(U203) = μ(U256#) = μ(U206) = μ(U62#) = μ(U205) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(U23) = μ(head) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U341#) = μ(U172#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U325#) = μ(U244#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U326#) = μ(U245#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U13) = μ(U131#) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U182#(tt, V1) → U183#(isLNat(V1))
U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U105#(tt, V2) → U106#(isLNat(V2))U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

fst#(pair(X, Y)) → U21#(isLNat(X), X, Y)U21#(tt, X, Y) → isLNatKind#(X)

U343#(tt, N, XS) → isLNatKind#(XS)U342#(tt, N, XS) → U343#(isLNat(XS), N, XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U245#(tt, V2) → isLNat#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U62#(tt, V1) → U63#(isPLNat(V1))
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U103#(tt, V1, V2) → isLNatKind#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U61#(tt, V1) → isPLNatKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U333#(tt, XS) → isLNatKind#(XS)U332#(tt, XS) → U333#(isLNat(XS), XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U44#(tt, V1, V2) → isNatural#(V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
U281#(tt, N) → isNaturalKind#(N)natsFrom#(N) → U281#(isNatural(N), N)
U282#(tt, N) → T(N)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2) → isLNatKind#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U81#(tt, V1) → isPLNatKind#(V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2) → isNatural#(V1)U205#(tt, V2) → isLNat#(V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)

afterNth#(N, XS) → U11#(isNatural(N), N, XS)U11#(tt, N, XS) → isNaturalKind#(N)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U44#(tt, V1, V2) → isNatural#(V1)
U205#(tt, V2) → isLNat#(V2)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U291#(tt, N, XS) → isNaturalKind#(N)sel#(N, XS) → U291#(isNatural(N), N, XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → isNaturalKind#(V1)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2) → isLNatKind#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → isLNatKind#(V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U62#(tt, V1) → U63#(isPLNat(V1))
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U61#(tt, V1) → isPLNatKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2) → U56#(isLNat(V2))U82#(tt, V1) → isPLNat#(V1)
U251#(tt, V1, V2) → isNaturalKind#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U245#(tt, V2) → isLNat#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U103#(tt, V1, V2) → isLNatKind#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U61#(tt, V1) → isPLNatKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U281#(tt, N) → U282#(isNaturalKind(N), N)U327#(pair(YS, ZS), X) → T(X)
splitAt#(s(N), cons(X, XS)) → isNatural#(N)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U325#(tt, N, X, XS) → isLNatKind#(XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U282#(tt, N) → T(N)U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)
U312#(tt, XS) → T(XS)U311#(tt, XS) → isLNatKind#(XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS) → U311#(isLNat(XS), XS)
T(s(x_1)) → T(x_1)U323#(tt, N, X, XS) → isNaturalKind#(X)
U326#(tt, N, X, XS) → T(XS)U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)
U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)T(natsFrom(x_1)) → T(x_1)
splitAt#(0, XS) → isLNat#(XS)U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS) → isNatural#(X)natsFrom#(N) → isNatural#(N)
T(natsFrom(s(N))) → natsFrom#(s(N))natsFrom#(N) → U281#(isNatural(N), N)
U326#(tt, N, X, XS) → T(N)U326#(tt, N, X, XS) → splitAt#(N, XS)
U281#(tt, N) → isNaturalKind#(N)U311#(tt, XS) → U312#(isLNatKind(XS), XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1) → U63#(isPLNat(V1))U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)
U61#(tt, V1) → isPLNatKind#(V1)

U327#(pair(YS, ZS), X) → T(X)splitAt#(s(N), cons(X, XS)) → isNatural#(N)
U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)U34#(tt, N) → T(N)
U14#(tt, N, XS) → snd#(splitAt(N, XS))U14#(tt, N, XS) → T(N)
U33#(tt, N, XS) → isLNatKind#(XS)U311#(tt, XS) → isLNatKind#(XS)
splitAt#(0, XS) → U311#(isLNat(XS), XS)U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)
U294#(tt, N, XS) → T(XS)head#(cons(N, XS)) → isNatural#(N)
U294#(tt, N, XS) → head#(afterNth(N, XS))U326#(tt, N, X, XS) → T(XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)snd#(pair(X, Y)) → isLNat#(X)
splitAt#(0, XS) → isLNat#(XS)U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS) → isNatural#(X)U303#(tt, Y) → isLNatKind#(Y)
U294#(tt, N, XS) → afterNth#(N, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U304#(tt, Y) → T(Y)U12#(tt, N, XS) → U13#(isLNat(XS), N, XS)
U302#(tt, Y) → U303#(isLNat(Y), Y)U13#(tt, N, XS) → isLNatKind#(XS)
U12#(tt, N, XS) → isLNat#(XS)U303#(tt, Y) → U304#(isLNatKind(Y), Y)
U325#(tt, N, X, XS) → isLNatKind#(XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U301#(tt, X, Y) → U302#(isLNatKind(X), Y)U324#(tt, N, X, XS) → isLNat#(XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)U312#(tt, XS) → T(XS)
snd#(pair(X, Y)) → U301#(isLNat(X), X, Y)U323#(tt, N, X, XS) → isNaturalKind#(X)
U31#(tt, N, XS) → isNaturalKind#(N)U31#(tt, N, XS) → U32#(isNaturalKind(N), N, XS)
U302#(tt, Y) → isLNat#(Y)afterNth#(N, XS) → isNatural#(N)
U14#(tt, N, XS) → T(XS)U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)
head#(cons(N, XS)) → U31#(isNatural(N), N, XS)U33#(tt, N, XS) → U34#(isLNatKind(XS), N)
U32#(tt, N, XS) → isLNat#(XS)U13#(tt, N, XS) → U14#(isLNatKind(XS), N, XS)
U32#(tt, N, XS) → U33#(isLNat(XS), N, XS)U326#(tt, N, X, XS) → T(N)
U11#(tt, N, XS) → isNaturalKind#(N)U321#(tt, N, X, XS) → isNaturalKind#(N)
afterNth#(N, XS) → U11#(isNatural(N), N, XS)U301#(tt, X, Y) → isLNatKind#(X)
U14#(tt, N, XS) → splitAt#(N, XS)U311#(tt, XS) → U312#(isLNatKind(XS), XS)
U11#(tt, N, XS) → U12#(isNaturalKind(N), N, XS)U293#(tt, N, XS) → U294#(isLNatKind(XS), N, XS)

U311#(tt, XS) → isLNatKind#(XS)splitAt#(0, XS) → U311#(isLNat(XS), XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → isNaturalKind#(V1)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2) → isLNatKind#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2) → isLNatKind#(V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1) → U63#(isPLNat(V1))U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U103#(tt, V1, V2) → isLNatKind#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U61#(tt, V1) → isPLNatKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U62#(tt, V1) → U63#(isPLNat(V1))
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U61#(tt, V1) → isPLNatKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

snd#(pair(X, Y)) → isLNat#(X)U302#(tt, Y) → U303#(isLNat(Y), Y)
U14#(tt, N, XS) → T(XS)U303#(tt, Y) → isLNatKind#(Y)
U303#(tt, Y) → U304#(isLNatKind(Y), Y)U13#(tt, N, XS) → U14#(isLNatKind(XS), N, XS)
U301#(tt, X, Y) → U302#(isLNatKind(X), Y)U301#(tt, X, Y) → isLNatKind#(X)
U14#(tt, N, XS) → T(N)U14#(tt, N, XS) → snd#(splitAt(N, XS))
snd#(pair(X, Y)) → U301#(isLNat(X), X, Y)U304#(tt, Y) → T(Y)
U302#(tt, Y) → isLNat#(Y)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U81#(tt, V1) → isPLNatKind#(V1)U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2) → isNatural#(V1)U205#(tt, V2) → isLNat#(V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → isNaturalKind#(V1)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2) → isLNatKind#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2) → isLNatKind#(V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1) → U63#(isPLNat(V1))U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U105#(tt, V2) → U106#(isLNat(V2))
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U103#(tt, V1, V2) → isLNatKind#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U61#(tt, V1) → isPLNatKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2) → isLNatKind#(V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1) → U63#(isPLNat(V1))U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U103#(tt, V1, V2) → isLNatKind#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U61#(tt, V1) → isPLNatKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
U333#(tt, XS) → isLNatKind#(XS)natsFrom#(N) → isNatural#(N)
T(natsFrom(s(N))) → natsFrom#(s(N))natsFrom#(N) → U281#(isNatural(N), N)
U282#(tt, N) → T(N)U334#(tt, XS) → T(XS)
T(s(x_1)) → T(x_1)U333#(tt, XS) → U334#(isLNatKind(XS), XS)
U281#(tt, N) → isNaturalKind#(N)U332#(tt, XS) → U333#(isLNat(XS), XS)
U331#(tt, N, XS) → U332#(isNaturalKind(N), XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2) → U56#(isLNat(V2))U82#(tt, V1) → isPLNat#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → isNaturalKind#(V1)
U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U255#(tt, V2) → isLNat#(V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U343#(tt, N, XS) → U344#(isLNatKind(XS), N, XS)fst#(pair(X, Y)) → isLNat#(X)
U22#(tt, X, Y) → isLNat#(Y)U327#(pair(YS, ZS), X) → T(X)
U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → isNatural#(N)
fst#(pair(X, Y)) → U21#(isLNat(X), X, Y)U325#(tt, N, X, XS) → isLNatKind#(XS)
splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)
U324#(tt, N, X, XS) → isLNat#(XS)U344#(tt, N, XS) → splitAt#(N, XS)
U312#(tt, XS) → T(XS)U311#(tt, XS) → isLNatKind#(XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS) → U311#(isLNat(XS), XS)
U21#(tt, X, Y) → U22#(isLNatKind(X), X, Y)U344#(tt, N, XS) → fst#(splitAt(N, XS))
U323#(tt, N, X, XS) → isNaturalKind#(X)U326#(tt, N, X, XS) → T(XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)
splitAt#(0, XS) → isLNat#(XS)U322#(tt, N, X, XS) → isNatural#(X)
U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)U24#(tt, X) → T(X)
U23#(tt, X, Y) → isLNatKind#(Y)U21#(tt, X, Y) → isLNatKind#(X)
U321#(tt, N, X, XS) → isNaturalKind#(N)U326#(tt, N, X, XS) → T(N)
U22#(tt, X, Y) → U23#(isLNat(Y), X, Y)U344#(tt, N, XS) → T(N)
U326#(tt, N, X, XS) → splitAt#(N, XS)U311#(tt, XS) → U312#(isLNatKind(XS), XS)
U23#(tt, X, Y) → U24#(isLNatKind(Y), X)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2) → isNatural#(V1)U205#(tt, V2) → isLNat#(V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U182#(tt, V1) → U183#(isLNat(V1))
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2) → isLNatKind#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U255#(tt, V2) → isLNat#(V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2) → isLNatKind#(V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → isLNatKind#(V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U62#(tt, V1) → U63#(isPLNat(V1))
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U103#(tt, V1, V2) → isLNatKind#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U61#(tt, V1) → isPLNatKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U342#(tt, N, XS) → isLNat#(XS)U341#(tt, N, XS) → U342#(isNaturalKind(N), N, XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U182#(tt, V1) → U183#(isLNat(V1))
U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U105#(tt, V2) → U106#(isLNat(V2))U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U103#(tt, V1, V2) → isLNatKind#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
U24#(tt, X) → T(X)natsFrom#(N) → isNatural#(N)
T(natsFrom(s(N))) → natsFrom#(s(N))U23#(tt, X, Y) → isLNatKind#(Y)
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)
U22#(tt, X, Y) → U23#(isLNat(Y), X, Y)U21#(tt, X, Y) → U22#(isLNatKind(X), X, Y)
T(s(x_1)) → T(x_1)U281#(tt, N) → isNaturalKind#(N)
U23#(tt, X, Y) → U24#(isLNatKind(Y), X)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U81#(tt, V1) → isPLNatKind#(V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2) → isNatural#(V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U294#(tt, N, XS) → afterNth#(N, XS)afterNth#(N, XS) → isNatural#(N)

U327#(pair(YS, ZS), X) → T(X)U281#(tt, N) → U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → isNatural#(N)
U325#(tt, N, X, XS) → isLNatKind#(XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U282#(tt, N) → T(N)U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)
U312#(tt, XS) → T(XS)U311#(tt, XS) → isLNatKind#(XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS) → U311#(isLNat(XS), XS)
T(s(x_1)) → T(x_1)U323#(tt, N, X, XS) → isNaturalKind#(X)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)U326#(tt, N, X, XS) → T(XS)
U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)T(natsFrom(x_1)) → T(x_1)
splitAt#(0, XS) → isLNat#(XS)U322#(tt, N, X, XS) → isNatural#(X)
U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)natsFrom#(N) → isNatural#(N)
T(natsFrom(s(N))) → natsFrom#(s(N))natsFrom#(N) → U281#(isNatural(N), N)
U321#(tt, N, X, XS) → isNaturalKind#(N)U326#(tt, N, X, XS) → T(N)
U326#(tt, N, X, XS) → splitAt#(N, XS)U281#(tt, N) → isNaturalKind#(N)
U311#(tt, XS) → U312#(isLNatKind(XS), XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U81#(tt, V1) → isPLNatKind#(V1)U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2) → isNatural#(V1)U205#(tt, V2) → isLNat#(V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U241#(tt, V1, V2) → isLNatKind#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2) → isLNatKind#(V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1) → U63#(isPLNat(V1))U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U61#(tt, V1) → isPLNatKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U12#(tt, N, XS) → isLNat#(XS)U11#(tt, N, XS) → U12#(isNaturalKind(N), N, XS)

U341#(tt, N, XS) → isNaturalKind#(N)take#(N, XS) → U341#(isNatural(N), N, XS)

U33#(tt, N, XS) → isLNatKind#(XS)U32#(tt, N, XS) → U33#(isLNat(XS), N, XS)

isLNatKind#(afterNth(V1, V2)) → U111#(isNaturalKind(V1), V2)isLNatKind#(tail(V1)) → isLNatKind#(V1)
isNaturalKind#(s(V1)) → isNaturalKind#(V1)isLNatKind#(snd(V1)) → isPLNatKind#(V1)
U271#(tt, V2) → isLNatKind#(V2)U171#(tt, V2) → isLNatKind#(V2)
isNaturalKind#(head(V1)) → isLNatKind#(V1)isPLNatKind#(splitAt(V1, V2)) → U271#(isNaturalKind(V1), V2)
isLNatKind#(afterNth(V1, V2)) → isNaturalKind#(V1)isNaturalKind#(sel(V1, V2)) → U231#(isNaturalKind(V1), V2)
isLNatKind#(fst(V1)) → isPLNatKind#(V1)U231#(tt, V2) → isLNatKind#(V2)
U121#(tt, V2) → isLNatKind#(V2)isPLNatKind#(pair(V1, V2)) → isLNatKind#(V1)
isLNatKind#(take(V1, V2)) → isNaturalKind#(V1)U111#(tt, V2) → isLNatKind#(V2)
U261#(tt, V2) → isLNatKind#(V2)isLNatKind#(take(V1, V2)) → U171#(isNaturalKind(V1), V2)
isPLNatKind#(pair(V1, V2)) → U261#(isLNatKind(V1), V2)isLNatKind#(cons(V1, V2)) → isNaturalKind#(V1)
isLNatKind#(cons(V1, V2)) → U121#(isNaturalKind(V1), V2)isLNatKind#(natsFrom(V1)) → isNaturalKind#(V1)
isPLNatKind#(splitAt(V1, V2)) → isNaturalKind#(V1)isNaturalKind#(sel(V1, V2)) → isNaturalKind#(V1)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U245#(tt, V2) → isLNat#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U22#(tt, X, Y) → isLNat#(Y)U281#(tt, N) → U282#(isNaturalKind(N), N)
T(natsFrom(x_1)) → T(x_1)U24#(tt, X) → T(X)
natsFrom#(N) → isNatural#(N)fst#(pair(X, Y)) → U21#(isLNat(X), X, Y)
T(natsFrom(s(N))) → natsFrom#(s(N))U23#(tt, X, Y) → isLNatKind#(Y)
natsFrom#(N) → U281#(isNatural(N), N)U21#(tt, X, Y) → isLNatKind#(X)
U282#(tt, N) → T(N)U22#(tt, X, Y) → U23#(isLNat(Y), X, Y)
U21#(tt, X, Y) → U22#(isLNatKind(X), X, Y)T(s(x_1)) → T(x_1)
U344#(tt, N, XS) → fst#(splitAt(N, XS))U281#(tt, N) → isNaturalKind#(N)
U23#(tt, X, Y) → U24#(isLNatKind(Y), X)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U62#(tt, V1) → U63#(isPLNat(V1))
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U82#(tt, V1) → isPLNat#(V1)
U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)U182#(tt, V1) → U183#(isLNat(V1))
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2) → isLNatKind#(V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U81#(tt, V1) → isPLNatKind#(V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2) → isNatural#(V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U327#(pair(YS, ZS), X) → T(X)splitAt#(s(N), cons(X, XS)) → isNatural#(N)
U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)U282#(tt, N) → T(N)
U34#(tt, N) → T(N)U14#(tt, N, XS) → snd#(splitAt(N, XS))
U14#(tt, N, XS) → T(N)U33#(tt, N, XS) → isLNatKind#(XS)
U311#(tt, XS) → isLNatKind#(XS)splitAt#(0, XS) → U311#(isLNat(XS), XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)T(s(x_1)) → T(x_1)
U294#(tt, N, XS) → T(XS)head#(cons(N, XS)) → isNatural#(N)
U294#(tt, N, XS) → head#(afterNth(N, XS))U326#(tt, N, X, XS) → T(XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)snd#(pair(X, Y)) → isLNat#(X)
splitAt#(0, XS) → isLNat#(XS)U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS) → isNatural#(X)natsFrom#(N) → isNatural#(N)
U303#(tt, Y) → isLNatKind#(Y)T(natsFrom(s(N))) → natsFrom#(s(N))
U294#(tt, N, XS) → afterNth#(N, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U304#(tt, Y) → T(Y)U12#(tt, N, XS) → U13#(isLNat(XS), N, XS)
U281#(tt, N) → U282#(isNaturalKind(N), N)U302#(tt, Y) → U303#(isLNat(Y), Y)
U294#(tt, N, XS) → T(N)U13#(tt, N, XS) → isLNatKind#(XS)
U292#(tt, N, XS) → U293#(isLNat(XS), N, XS)U12#(tt, N, XS) → isLNat#(XS)
U303#(tt, Y) → U304#(isLNatKind(Y), Y)U325#(tt, N, X, XS) → isLNatKind#(XS)
splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)U301#(tt, X, Y) → U302#(isLNatKind(X), Y)
U324#(tt, N, X, XS) → isLNat#(XS)U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)
U312#(tt, XS) → T(XS)snd#(pair(X, Y)) → U301#(isLNat(X), X, Y)
U323#(tt, N, X, XS) → isNaturalKind#(X)U31#(tt, N, XS) → isNaturalKind#(N)
U31#(tt, N, XS) → U32#(isNaturalKind(N), N, XS)U302#(tt, Y) → isLNat#(Y)
afterNth#(N, XS) → isNatural#(N)T(natsFrom(x_1)) → T(x_1)
U14#(tt, N, XS) → T(XS)U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)
head#(cons(N, XS)) → U31#(isNatural(N), N, XS)U293#(tt, N, XS) → isLNatKind#(XS)
U33#(tt, N, XS) → U34#(isLNatKind(XS), N)natsFrom#(N) → U281#(isNatural(N), N)
U32#(tt, N, XS) → isLNat#(XS)U13#(tt, N, XS) → U14#(isLNatKind(XS), N, XS)
U32#(tt, N, XS) → U33#(isLNat(XS), N, XS)U326#(tt, N, X, XS) → T(N)
U11#(tt, N, XS) → isNaturalKind#(N)U321#(tt, N, X, XS) → isNaturalKind#(N)
afterNth#(N, XS) → U11#(isNatural(N), N, XS)U301#(tt, X, Y) → isLNatKind#(X)
U14#(tt, N, XS) → splitAt#(N, XS)U281#(tt, N) → isNaturalKind#(N)
U291#(tt, N, XS) → U292#(isNaturalKind(N), N, XS)U311#(tt, XS) → U312#(isLNatKind(XS), XS)
U11#(tt, N, XS) → U12#(isNaturalKind(N), N, XS)U293#(tt, N, XS) → U294#(isLNatKind(XS), N, XS)

U32#(tt, N, XS) → isLNat#(XS)U31#(tt, N, XS) → U32#(isNaturalKind(N), N, XS)

U327#(pair(YS, ZS), X) → T(X)U281#(tt, N) → U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U282#(tt, N) → T(N)U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)
U324#(tt, N, X, XS) → isLNat#(XS)U312#(tt, XS) → T(XS)
U311#(tt, XS) → isLNatKind#(XS)U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)
splitAt#(0, XS) → U311#(isLNat(XS), XS)T(s(x_1)) → T(x_1)
U323#(tt, N, X, XS) → isNaturalKind#(X)U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)
U326#(tt, N, X, XS) → T(XS)splitAt#(0, XS) → isLNat#(XS)
U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)T(natsFrom(x_1)) → T(x_1)
U322#(tt, N, X, XS) → isNatural#(X)U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)
natsFrom#(N) → isNatural#(N)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U321#(tt, N, X, XS) → isNaturalKind#(N)
U326#(tt, N, X, XS) → T(N)U326#(tt, N, X, XS) → splitAt#(N, XS)
U281#(tt, N) → isNaturalKind#(N)U311#(tt, XS) → U312#(isLNatKind(XS), XS)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2) → U246#(isLNat(V2))U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2) → isLNatKind#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U81#(tt, V1) → isPLNatKind#(V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U241#(tt, V1, V2) → isLNatKind#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U44#(tt, V1, V2) → isNatural#(V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U72#(tt, V1) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U245#(tt, V2) → isLNat#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U43#(tt, V1, V2) → isLNatKind#(V2)

head#(cons(N, XS)) → isNatural#(N)U294#(tt, N, XS) → head#(afterNth(N, XS))

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U44#(tt, V1, V2) → isNatural#(V1)
U205#(tt, V2) → isLNat#(V2)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U61#(tt, V1) → isPLNatKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U245#(tt, V2) → isLNat#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U182#(tt, V1) → U183#(isLNat(V1))
U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U105#(tt, V2) → U106#(isLNat(V2))
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U103#(tt, V1, V2) → isLNatKind#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2) → isLNatKind#(V2)
U82#(tt, V1) → U83#(isPLNat(V1))U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → isLNatKind#(V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2) → isNatural#(V1)
U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U62#(tt, V1) → U63#(isPLNat(V1))
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U61#(tt, V1) → isPLNatKind#(V1)U43#(tt, V1, V2) → isLNatKind#(V2)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → U246#(isLNat(V2))
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2) → isLNatKind#(V2)U82#(tt, V1) → U83#(isPLNat(V1))
U255#(tt, V2) → isLNat#(V2)U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2) → isLNatKind#(V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1) → U63#(isPLNat(V1))U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
U254#(tt, V1, V2) → U255#(isNatural(V1), V2)isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U201#(tt, V1, V2) → isNaturalKind#(V1)U61#(tt, V1) → isPLNatKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

head#(cons(N, XS)) → U31#(isNatural(N), N, XS)U31#(tt, N, XS) → isNaturalKind#(N)

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → isNaturalKind#(V1)
U182#(tt, V1) → U183#(isLNat(V1))U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → U83#(isPLNat(V1))U105#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2) → isLNatKind#(V2)
U252#(tt, V1, V2) → isLNatKind#(V2)U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)U205#(tt, V2) → U206#(isLNat(V2))
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1) → isPLNatKind#(V1)
U61#(tt, V1) → U62#(isPLNatKind(V1), V1)U192#(tt, V1) → isNatural#(V1)
U181#(tt, V1) → U182#(isLNatKind(V1), V1)U71#(tt, V1) → U72#(isNaturalKind(V1), V1)
U62#(tt, V1) → isPLNat#(V1)U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → isLNatKind#(V1)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2) → U205#(isNatural(V1), V2)U205#(tt, V2) → isLNat#(V2)
U44#(tt, V1, V2) → isNatural#(V1)U254#(tt, V1, V2) → isNatural#(V1)
U72#(tt, V1) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U53#(tt, V1, V2) → isLNatKind#(V2)
U192#(tt, V1) → U193#(isNatural(V1))U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)
U103#(tt, V1, V2) → isLNatKind#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
U302#(tt, Y) → U303#(isLNat(Y), Y)natsFrom#(N) → isNatural#(N)
U303#(tt, Y) → isLNatKind#(Y)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U303#(tt, Y) → U304#(isLNatKind(Y), Y)
U301#(tt, X, Y) → U302#(isLNatKind(X), Y)U282#(tt, N) → T(N)
T(s(x_1)) → T(x_1)U281#(tt, N) → isNaturalKind#(N)
U304#(tt, Y) → T(Y)

snd#(pair(X, Y)) → isLNat#(X)U14#(tt, N, XS) → snd#(splitAt(N, XS))

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2) → isNaturalKind#(V1)
U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)U55#(tt, V2) → U56#(isLNat(V2))
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U251#(tt, V1, V2) → isNaturalKind#(V1)U92#(tt, V1) → isLNat#(V1)
U182#(tt, V1) → isLNat#(V1)U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → isNatural#(V1)isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)U245#(tt, V2) → isLNat#(V2)
isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)U255#(tt, V2) → isLNat#(V2)
U105#(tt, V2) → isLNat#(V2)U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2) → isLNatKind#(V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U205#(tt, V2) → U206#(isLNat(V2))U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1) → isPLNatKind#(V1)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
U91#(tt, V1) → isLNatKind#(V1)isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2) → isLNat#(V2)isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U205#(tt, V2) → isLNat#(V2)U44#(tt, V1, V2) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U244#(tt, V1, V2) → U245#(isLNat(V1), V2)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2) → isNatural#(V1)
U91#(tt, V1) → U92#(isLNatKind(V1), V1)U81#(tt, V1) → U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → U55#(isNatural(V1), V2)
U53#(tt, V1, V2) → isLNatKind#(V2)U192#(tt, V1) → U193#(isNatural(V1))
U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2) → U45#(isNatural(V1), V2)
isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2) → U105#(isNatural(V1), V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)U244#(tt, V1, V2) → isLNat#(V1)
U45#(tt, V2) → isLNat#(V2)U201#(tt, V1, V2) → isNaturalKind#(V1)
U43#(tt, V1, V2) → isLNatKind#(V2)

U327#(pair(YS, ZS), X) → T(X)U281#(tt, N) → U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)U325#(tt, N, X, XS) → isLNatKind#(XS)
splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)U282#(tt, N) → T(N)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)U324#(tt, N, X, XS) → isLNat#(XS)
U312#(tt, XS) → T(XS)U311#(tt, XS) → isLNatKind#(XS)
splitAt#(0, XS) → U311#(isLNat(XS), XS)U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)
T(s(x_1)) → T(x_1)U323#(tt, N, X, XS) → isNaturalKind#(X)
U326#(tt, N, X, XS) → T(XS)U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)
splitAt#(0, XS) → isLNat#(XS)U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)
T(natsFrom(x_1)) → T(x_1)U322#(tt, N, X, XS) → isNatural#(X)
U326#(tt, N, X, XS) → U327#(splitAt(N, XS), X)natsFrom#(N) → isNatural#(N)
T(natsFrom(s(N))) → natsFrom#(s(N))natsFrom#(N) → U281#(isNatural(N), N)
U326#(tt, N, X, XS) → T(N)U321#(tt, N, X, XS) → isNaturalKind#(N)
U326#(tt, N, X, XS) → splitAt#(N, XS)U281#(tt, N) → isNaturalKind#(N)
U311#(tt, XS) → U312#(isLNatKind(XS), XS)

Problem 2: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U105#(tt, V2)U106#(isLNat(V2))U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U343#(tt, N, XS)U344#(isLNatKind(XS), N, XS)fst#(pair(X, Y))isLNat#(X)
U22#(tt, X, Y)isLNat#(Y)U327#(pair(YS, ZS), X)T(X)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS))isNatural#(N)
fst#(pair(X, Y))U21#(isLNat(X), X, Y)U325#(tt, N, X, XS)isLNatKind#(XS)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U324#(tt, N, X, XS)isLNat#(XS)U344#(tt, N, XS)splitAt#(N, XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
U21#(tt, X, Y)U22#(isLNatKind(X), X, Y)U344#(tt, N, XS)fst#(splitAt(N, XS))
U323#(tt, N, X, XS)isNaturalKind#(X)U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)
U326#(tt, N, X, XS)T(XS)splitAt#(0, XS)isLNat#(XS)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)U24#(tt, X)T(X)
U23#(tt, X, Y)isLNatKind#(Y)U21#(tt, X, Y)isLNatKind#(X)
U321#(tt, N, X, XS)isNaturalKind#(N)U326#(tt, N, X, XS)T(N)
U22#(tt, X, Y)U23#(isLNat(Y), X, Y)U344#(tt, N, XS)T(N)
U326#(tt, N, X, XS)splitAt#(N, XS)U311#(tt, XS)U312#(isLNatKind(XS), XS)
U23#(tt, X, Y)U24#(isLNatKind(Y), X)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U32#(tt, N, XS)isLNat#(XS)U31#(tt, N, XS)U32#(isNaturalKind(N), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2)U56#(isLNat(V2))U82#(tt, V1)isPLNat#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)U246#(isLNat(V2))
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2)isLNatKind#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 9: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 10: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 11: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)
U55#(tt, V2)U56#(isLNat(V2))U82#(tt, V1)isPLNat#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 12: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2)isLNatKind#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U241#(tt, V1, V2)isLNatKind#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U61#(tt, V1)isPLNatKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 13: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U12#(tt, N, XS)isLNat#(XS)U11#(tt, N, XS)U12#(isNaturalKind(N), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 14: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U281#(tt, N)U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS))isNatural#(N)
U325#(tt, N, X, XS)isLNatKind#(XS)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U282#(tt, N)T(N)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
T(s(x_1))T(x_1)U323#(tt, N, X, XS)isNaturalKind#(X)
U326#(tt, N, X, XS)T(XS)U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)
splitAt#(0, XS)isLNat#(XS)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U321#(tt, N, X, XS)isNaturalKind#(N)U326#(tt, N, X, XS)T(N)
U326#(tt, N, X, XS)splitAt#(N, XS)U281#(tt, N)isNaturalKind#(N)
U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

T(natsFrom(x_1)) → T(x_1)U281#(tt, N) → U282#(isNaturalKind(N), N)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 15: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U61#(tt, V1)isPLNatKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 16: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U281#(tt, N)U282#(isNaturalKind(N), N)U327#(pair(YS, ZS), X)T(X)
splitAt#(s(N), cons(X, XS))isNatural#(N)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
U325#(tt, N, X, XS)isLNatKind#(XS)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U282#(tt, N)T(N)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
T(s(x_1))T(x_1)U323#(tt, N, X, XS)isNaturalKind#(X)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)U326#(tt, N, X, XS)T(XS)
splitAt#(0, XS)isLNat#(XS)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U322#(tt, N, X, XS)isNatural#(X)
U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U326#(tt, N, X, XS)T(N)U326#(tt, N, X, XS)splitAt#(N, XS)
U281#(tt, N)isNaturalKind#(N)U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 18: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U341#(tt, N, XS)isNaturalKind#(N)take#(N, XS)U341#(isNatural(N), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 19: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2)isLNatKind#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U241#(tt, V1, V2)isLNatKind#(V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 20: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U61#(tt, V1)isPLNatKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 21: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U342#(tt, N, XS)isLNat#(XS)U341#(tt, N, XS)U342#(isNaturalKind(N), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 22: DependencyGraph



Dependency Pair Problem

Dependency Pairs

snd#(pair(X, Y))isLNat#(X)U14#(tt, N, XS)snd#(splitAt(N, XS))

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 23: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 24: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 25: DependencyGraph



Dependency Pair Problem

Dependency Pairs

fst#(pair(X, Y))U21#(isLNat(X), X, Y)U21#(tt, X, Y)isLNatKind#(X)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 26: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U333#(tt, XS)isLNatKind#(XS)U332#(tt, XS)U333#(isLNat(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 27: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 28: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
splitAt#(s(N), cons(X, XS))isNatural#(N)U282#(tt, N)T(N)
U34#(tt, N)T(N)U33#(tt, N, XS)isLNatKind#(XS)
U14#(tt, N, XS)T(N)U14#(tt, N, XS)snd#(splitAt(N, XS))
U311#(tt, XS)isLNatKind#(XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)T(s(x_1))T(x_1)
head#(cons(N, XS))isNatural#(N)U294#(tt, N, XS)T(XS)
U294#(tt, N, XS)head#(afterNth(N, XS))U326#(tt, N, X, XS)T(XS)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)snd#(pair(X, Y))isLNat#(X)
splitAt#(0, XS)isLNat#(XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)natsFrom#(N)isNatural#(N)
U303#(tt, Y)isLNatKind#(Y)T(natsFrom(s(N)))natsFrom#(s(N))
U294#(tt, N, XS)afterNth#(N, XS)U326#(tt, N, X, XS)splitAt#(N, XS)
U304#(tt, Y)T(Y)U12#(tt, N, XS)U13#(isLNat(XS), N, XS)
U302#(tt, Y)U303#(isLNat(Y), Y)U281#(tt, N)U282#(isNaturalKind(N), N)
U13#(tt, N, XS)isLNatKind#(XS)U294#(tt, N, XS)T(N)
U292#(tt, N, XS)U293#(isLNat(XS), N, XS)U12#(tt, N, XS)isLNat#(XS)
U325#(tt, N, X, XS)isLNatKind#(XS)U303#(tt, Y)U304#(isLNatKind(Y), Y)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)U301#(tt, X, Y)U302#(isLNatKind(X), Y)
U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)U324#(tt, N, X, XS)isLNat#(XS)
U312#(tt, XS)T(XS)snd#(pair(X, Y))U301#(isLNat(X), X, Y)
U323#(tt, N, X, XS)isNaturalKind#(X)U31#(tt, N, XS)isNaturalKind#(N)
U302#(tt, Y)isLNat#(Y)U31#(tt, N, XS)U32#(isNaturalKind(N), N, XS)
afterNth#(N, XS)isNatural#(N)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U14#(tt, N, XS)T(XS)
head#(cons(N, XS))U31#(isNatural(N), N, XS)U293#(tt, N, XS)isLNatKind#(XS)
U33#(tt, N, XS)U34#(isLNatKind(XS), N)natsFrom#(N)U281#(isNatural(N), N)
U32#(tt, N, XS)isLNat#(XS)U13#(tt, N, XS)U14#(isLNatKind(XS), N, XS)
U32#(tt, N, XS)U33#(isLNat(XS), N, XS)U326#(tt, N, X, XS)T(N)
U11#(tt, N, XS)isNaturalKind#(N)U321#(tt, N, X, XS)isNaturalKind#(N)
afterNth#(N, XS)U11#(isNatural(N), N, XS)U301#(tt, X, Y)isLNatKind#(X)
U14#(tt, N, XS)splitAt#(N, XS)U281#(tt, N)isNaturalKind#(N)
U291#(tt, N, XS)U292#(isNaturalKind(N), N, XS)U311#(tt, XS)U312#(isLNatKind(XS), XS)
U11#(tt, N, XS)U12#(isNaturalKind(N), N, XS)U293#(tt, N, XS)U294#(isLNatKind(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

T(natsFrom(x_1)) → T(x_1)U281#(tt, N) → U282#(isNaturalKind(N), N)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 29: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 30: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U61#(tt, V1)isPLNatKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 31: DependencyGraph



Dependency Pair Problem

Dependency Pairs

head#(cons(N, XS))U31#(isNatural(N), N, XS)U31#(tt, N, XS)isNaturalKind#(N)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 32: DependencyGraph



Dependency Pair Problem

Dependency Pairs

T(natsFrom(x_1))T(x_1)U281#(tt, N)U282#(isNaturalKind(N), N)
U333#(tt, XS)isLNatKind#(XS)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U282#(tt, N)T(N)U334#(tt, XS)T(XS)
T(s(x_1))T(x_1)U333#(tt, XS)U334#(isLNatKind(XS), XS)
U281#(tt, N)isNaturalKind#(N)U332#(tt, XS)U333#(isLNat(XS), XS)
U331#(tt, N, XS)U332#(isNaturalKind(N), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

Problem 33: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 34: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U281#(tt, N)U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U282#(tt, N)T(N)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U324#(tt, N, X, XS)isLNat#(XS)U312#(tt, XS)T(XS)
U311#(tt, XS)isLNatKind#(XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)T(s(x_1))T(x_1)
U323#(tt, N, X, XS)isNaturalKind#(X)U326#(tt, N, X, XS)T(XS)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)T(natsFrom(x_1))T(x_1)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)splitAt#(0, XS)isLNat#(XS)
U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)U322#(tt, N, X, XS)isNatural#(X)
natsFrom#(N)isNatural#(N)T(natsFrom(s(N)))natsFrom#(s(N))
natsFrom#(N)U281#(isNatural(N), N)U326#(tt, N, X, XS)T(N)
U321#(tt, N, X, XS)isNaturalKind#(N)U326#(tt, N, X, XS)splitAt#(N, XS)
U281#(tt, N)isNaturalKind#(N)U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

T(natsFrom(x_1)) → T(x_1)U281#(tt, N) → U282#(isNaturalKind(N), N)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 35: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U343#(tt, N, XS)isLNatKind#(XS)U342#(tt, N, XS)U343#(isLNat(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 36: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U105#(tt, V2)U106#(isLNat(V2))U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 37: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U105#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 38: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U82#(tt, V1)isPLNat#(V1)
U251#(tt, V1, V2)isNaturalKind#(V1)U182#(tt, V1)U183#(isLNat(V1))
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2)isLNatKind#(V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 39: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 40: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2)isLNatKind#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U103#(tt, V1, V2)isLNatKind#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U61#(tt, V1)isPLNatKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 41: DependencyGraph



Dependency Pair Problem

Dependency Pairs

afterNth#(N, XS)U11#(isNatural(N), N, XS)U11#(tt, N, XS)isNaturalKind#(N)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 42: DependencyGraph



Dependency Pair Problem

Dependency Pairs

snd#(pair(X, Y))isLNat#(X)U14#(tt, N, XS)T(XS)
U302#(tt, Y)U303#(isLNat(Y), Y)U303#(tt, Y)isLNatKind#(Y)
U303#(tt, Y)U304#(isLNatKind(Y), Y)U301#(tt, X, Y)U302#(isLNatKind(X), Y)
U13#(tt, N, XS)U14#(isLNatKind(XS), N, XS)U301#(tt, X, Y)isLNatKind#(X)
U14#(tt, N, XS)snd#(splitAt(N, XS))U14#(tt, N, XS)T(N)
snd#(pair(X, Y))U301#(isLNat(X), X, Y)U304#(tt, Y)T(Y)
U302#(tt, Y)isLNat#(Y)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 43: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U105#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)
U61#(tt, V1)isPLNatKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 44: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 45: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U105#(tt, V2)U106#(isLNat(V2))
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 46: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U294#(tt, N, XS)afterNth#(N, XS)afterNth#(N, XS)isNatural#(N)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 47: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2)isLNatKind#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U81#(tt, V1)isPLNatKind#(V1)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2)isLNat#(V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 48: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U291#(tt, N, XS)isNaturalKind#(N)sel#(N, XS)U291#(isNatural(N), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 49: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U281#(tt, N)U282#(isNaturalKind(N), N)
U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)U325#(tt, N, X, XS)isLNatKind#(XS)
splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)U282#(tt, N)T(N)
U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)U324#(tt, N, X, XS)isLNat#(XS)
U312#(tt, XS)T(XS)U311#(tt, XS)isLNatKind#(XS)
splitAt#(0, XS)U311#(isLNat(XS), XS)U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)
T(s(x_1))T(x_1)U323#(tt, N, X, XS)isNaturalKind#(X)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)U326#(tt, N, X, XS)T(XS)
T(natsFrom(x_1))T(x_1)U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)
splitAt#(0, XS)isLNat#(XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)natsFrom#(N)isNatural#(N)
T(natsFrom(s(N)))natsFrom#(s(N))natsFrom#(N)U281#(isNatural(N), N)
U326#(tt, N, X, XS)T(N)U321#(tt, N, X, XS)isNaturalKind#(N)
U326#(tt, N, X, XS)splitAt#(N, XS)U281#(tt, N)isNaturalKind#(N)
U311#(tt, XS)U312#(isLNatKind(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

T(natsFrom(x_1)) → T(x_1)U281#(tt, N) → U282#(isNaturalKind(N), N)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 50: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 51: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 52: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U182#(tt, V1)U183#(isLNat(V1))
U251#(tt, V1, V2)isNaturalKind#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U243#(tt, V1, V2)isLNatKind#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U255#(tt, V2)isLNat#(V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U102#(tt, V1, V2)isLNatKind#(V2)U252#(tt, V1, V2)isLNatKind#(V2)
U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)
U205#(tt, V2)U206#(isLNat(V2))U81#(tt, V1)isPLNatKind#(V1)
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U241#(tt, V1, V2)isLNatKind#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U62#(tt, V1)U63#(isPLNat(V1))
U55#(tt, V2)isLNat#(V2)isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)
isLNat#(tail(V1))U91#(isLNatKind(V1), V1)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U205#(tt, V2)isLNat#(V2)U44#(tt, V1, V2)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 53: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U241#(tt, V1, V2)isLNatKind#(V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U72#(tt, V1)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 54: DependencyGraph



Dependency Pair Problem

Dependency Pairs

T(natsFrom(x_1))T(x_1)U281#(tt, N)U282#(isNaturalKind(N), N)
U22#(tt, X, Y)isLNat#(Y)U24#(tt, X)T(X)
natsFrom#(N)isNatural#(N)fst#(pair(X, Y))U21#(isLNat(X), X, Y)
U23#(tt, X, Y)isLNatKind#(Y)T(natsFrom(s(N)))natsFrom#(s(N))
natsFrom#(N)U281#(isNatural(N), N)U21#(tt, X, Y)isLNatKind#(X)
U282#(tt, N)T(N)U22#(tt, X, Y)U23#(isLNat(Y), X, Y)
U21#(tt, X, Y)U22#(isLNatKind(X), X, Y)T(s(x_1))T(x_1)
U344#(tt, N, XS)fst#(splitAt(N, XS))U281#(tt, N)isNaturalKind#(N)
U23#(tt, X, Y)U24#(isLNatKind(Y), X)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U281#(tt, N) → U282#(isNaturalKind(N), N)T(natsFrom(x_1)) → T(x_1)
T(s(x_1)) → T(x_1)T(natsFrom(s(N))) → natsFrom#(s(N))
natsFrom#(N) → U281#(isNatural(N), N)U282#(tt, N) → T(N)

Problem 55: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U245#(tt, V2)isLNat#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 56: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U311#(tt, XS)isLNatKind#(XS)splitAt#(0, XS)U311#(isLNat(XS), XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


There are no SCCs!

Problem 57: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)isNaturalKind#(V1)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)isLNat#(V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U82#(tt, V1)U83#(isPLNat(V1))U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U44#(tt, V1, V2)isNatural#(V1)U205#(tt, V2)isLNat#(V2)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 58: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)
U245#(tt, V2)isLNat#(V2)U82#(tt, V1)U83#(isPLNat(V1))
U255#(tt, V2)isLNat#(V2)U105#(tt, V2)isLNat#(V2)
U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U81#(tt, V1)isPLNatKind#(V1)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)
isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)
U91#(tt, V1)isLNatKind#(V1)U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U254#(tt, V1, V2)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)U55#(isNatural(V1), V2)U53#(tt, V1, V2)isLNatKind#(V2)
U192#(tt, V1)U193#(isNatural(V1))U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1))U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2)U45#(isNatural(V1), V2)isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2)U105#(isNatural(V1), V2)U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2)isLNat#(V1)U45#(tt, V2)isLNat#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 59: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)U92#(tt, V1)isLNat#(V1)
U182#(tt, V1)isLNat#(V1)U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2)isNatural#(V1)isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)
U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1)U62#(isPLNatKind(V1), V1)
U192#(tt, V1)isNatural#(V1)U181#(tt, V1)U182#(isLNatKind(V1), V1)
U71#(tt, V1)U72#(isNaturalKind(V1), V1)U62#(tt, V1)isPLNat#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2)isNatural#(V1)U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U55#(tt, V2)isLNat#(V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)U44#(tt, V1, V2)isNatural#(V1)
U205#(tt, V2)isLNat#(V2)U204#(tt, V1, V2)U205#(isNatural(V1), V2)
U254#(tt, V1, V2)isNatural#(V1)U72#(tt, V1)isNatural#(V1)
U244#(tt, V1, V2)U245#(isLNat(V1), V2)U254#(tt, V1, V2)U255#(isNatural(V1), V2)
isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)U204#(tt, V1, V2)isNatural#(V1)
U91#(tt, V1)U92#(isLNatKind(V1), V1)U81#(tt, V1)U82#(isPLNatKind(V1), V1)
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1))U181#(isLNatKind(V1), V1)
U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U201#(tt, V1, V2)isNaturalKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)

Problem 62: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U327#(pair(YS, ZS), X)T(X)U324#(tt, N, X, XS)U325#(isLNat(XS), N, X, XS)
splitAt#(s(N), cons(X, XS))isNatural#(N)U34#(tt, N)T(N)
U33#(tt, N, XS)isLNatKind#(XS)U14#(tt, N, XS)T(N)
U14#(tt, N, XS)snd#(splitAt(N, XS))U311#(tt, XS)isLNatKind#(XS)
U323#(tt, N, X, XS)U324#(isNaturalKind(X), N, X, XS)splitAt#(0, XS)U311#(isLNat(XS), XS)
head#(cons(N, XS))isNatural#(N)U294#(tt, N, XS)T(XS)
U294#(tt, N, XS)head#(afterNth(N, XS))U326#(tt, N, X, XS)T(XS)
U325#(tt, N, X, XS)U326#(isLNatKind(XS), N, X, XS)snd#(pair(X, Y))isLNat#(X)
splitAt#(0, XS)isLNat#(XS)U326#(tt, N, X, XS)U327#(splitAt(N, XS), X)
U322#(tt, N, X, XS)isNatural#(X)U303#(tt, Y)isLNatKind#(Y)
U294#(tt, N, XS)afterNth#(N, XS)U326#(tt, N, X, XS)splitAt#(N, XS)
U304#(tt, Y)T(Y)U12#(tt, N, XS)U13#(isLNat(XS), N, XS)
U302#(tt, Y)U303#(isLNat(Y), Y)U13#(tt, N, XS)isLNatKind#(XS)
U12#(tt, N, XS)isLNat#(XS)U325#(tt, N, X, XS)isLNatKind#(XS)
U303#(tt, Y)U304#(isLNatKind(Y), Y)splitAt#(s(N), cons(X, XS))U321#(isNatural(N), N, X, XS)
U301#(tt, X, Y)U302#(isLNatKind(X), Y)U322#(tt, N, X, XS)U323#(isNatural(X), N, X, XS)
U324#(tt, N, X, XS)isLNat#(XS)U312#(tt, XS)T(XS)
snd#(pair(X, Y))U301#(isLNat(X), X, Y)U323#(tt, N, X, XS)isNaturalKind#(X)
U31#(tt, N, XS)isNaturalKind#(N)U302#(tt, Y)isLNat#(Y)
U31#(tt, N, XS)U32#(isNaturalKind(N), N, XS)afterNth#(N, XS)isNatural#(N)
U321#(tt, N, X, XS)U322#(isNaturalKind(N), N, X, XS)U14#(tt, N, XS)T(XS)
head#(cons(N, XS))U31#(isNatural(N), N, XS)U33#(tt, N, XS)U34#(isLNatKind(XS), N)
U32#(tt, N, XS)isLNat#(XS)U13#(tt, N, XS)U14#(isLNatKind(XS), N, XS)
U32#(tt, N, XS)U33#(isLNat(XS), N, XS)U321#(tt, N, X, XS)isNaturalKind#(N)
U11#(tt, N, XS)isNaturalKind#(N)U326#(tt, N, X, XS)T(N)
afterNth#(N, XS)U11#(isNatural(N), N, XS)U301#(tt, X, Y)isLNatKind#(X)
U14#(tt, N, XS)splitAt#(N, XS)U311#(tt, XS)U312#(isLNatKind(XS), XS)
U11#(tt, N, XS)U12#(isNaturalKind(N), N, XS)U293#(tt, N, XS)U294#(isLNatKind(XS), N, XS)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U321#(tt, N, X, XS) → U322#(isNaturalKind(N), N, X, XS)U324#(tt, N, X, XS) → U325#(isLNat(XS), N, X, XS)
U323#(tt, N, X, XS) → U324#(isNaturalKind(X), N, X, XS)U326#(tt, N, X, XS) → splitAt#(N, XS)
U325#(tt, N, X, XS) → U326#(isLNatKind(XS), N, X, XS)splitAt#(s(N), cons(X, XS)) → U321#(isNatural(N), N, X, XS)
U322#(tt, N, X, XS) → U323#(isNatural(X), N, X, XS)

Problem 63: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U102#(tt, V1, V2)U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2)U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1)U192#(isNaturalKind(V1), V1)U51#(tt, V1, V2)isNaturalKind#(V1)
U241#(tt, V1, V2)U242#(isLNatKind(V1), V1, V2)U55#(tt, V2)U56#(isLNat(V2))
U82#(tt, V1)isPLNat#(V1)U251#(tt, V1, V2)isNaturalKind#(V1)
U182#(tt, V1)U183#(isLNat(V1))U251#(tt, V1, V2)U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1)isLNat#(V1)U182#(tt, V1)isLNat#(V1)
U253#(tt, V1, V2)U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)isNatural#(V1)
isLNat#(afterNth(V1, V2))U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2)U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2)U246#(isLNat(V2))U245#(tt, V2)isLNat#(V2)
isPLNat#(pair(V1, V2))U241#(isLNatKind(V1), V1, V2)U243#(tt, V1, V2)isLNatKind#(V2)
U82#(tt, V1)U83#(isPLNat(V1))U255#(tt, V2)isLNat#(V2)
U105#(tt, V2)isLNat#(V2)U101#(tt, V1, V2)U102#(isNaturalKind(V1), V1, V2)
U43#(tt, V1, V2)U44#(isLNatKind(V2), V1, V2)U203#(tt, V1, V2)U204#(isLNatKind(V2), V1, V2)
isLNat#(cons(V1, V2))U51#(isNaturalKind(V1), V1, V2)U102#(tt, V1, V2)isLNatKind#(V2)
U252#(tt, V1, V2)isLNatKind#(V2)U51#(tt, V1, V2)U52#(isNaturalKind(V1), V1, V2)
isLNat#(natsFrom(V1))U71#(isNaturalKind(V1), V1)U205#(tt, V2)U206#(isLNat(V2))
U81#(tt, V1)isPLNatKind#(V1)U201#(tt, V1, V2)U202#(isNaturalKind(V1), V1, V2)
U61#(tt, V1)U62#(isPLNatKind(V1), V1)U192#(tt, V1)isNatural#(V1)
U181#(tt, V1)U182#(isLNatKind(V1), V1)U71#(tt, V1)U72#(isNaturalKind(V1), V1)
U62#(tt, V1)isPLNat#(V1)U241#(tt, V1, V2)isLNatKind#(V1)
U202#(tt, V1, V2)U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2))U201#(isNaturalKind(V1), V1, V2)
U243#(tt, V1, V2)U244#(isLNatKind(V2), V1, V2)U104#(tt, V1, V2)isNatural#(V1)
isLNat#(take(V1, V2))U101#(isNaturalKind(V1), V1, V2)U91#(tt, V1)isLNatKind#(V1)
U62#(tt, V1)U63#(isPLNat(V1))U55#(tt, V2)isLNat#(V2)
isPLNat#(splitAt(V1, V2))U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1))U91#(isLNatKind(V1), V1)
U204#(tt, V1, V2)U205#(isNatural(V1), V2)U205#(tt, V2)isLNat#(V2)
U44#(tt, V1, V2)isNatural#(V1)U254#(tt, V1, V2)isNatural#(V1)
U72#(tt, V1)isNatural#(V1)U244#(tt, V1, V2)U245#(isLNat(V1), V2)
U254#(tt, V1, V2)U255#(isNatural(V1), V2)isLNat#(fst(V1))U61#(isPLNatKind(V1), V1)
U204#(tt, V1, V2)isNatural#(V1)U91#(tt, V1)U92#(isLNatKind(V1), V1)
U81#(tt, V1)U82#(isPLNatKind(V1), V1)U105#(tt, V2)U106#(isLNat(V2))
U242#(tt, V1, V2)U243#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2)U55#(isNatural(V1), V2)
U53#(tt, V1, V2)isLNatKind#(V2)U192#(tt, V1)U193#(isNatural(V1))
U252#(tt, V1, V2)U253#(isLNatKind(V2), V1, V2)U53#(tt, V1, V2)U54#(isLNatKind(V2), V1, V2)
isNatural#(s(V1))U191#(isNaturalKind(V1), V1)U44#(tt, V1, V2)U45#(isNatural(V1), V2)
isLNat#(snd(V1))U81#(isPLNatKind(V1), V1)U104#(tt, V1, V2)U105#(isNatural(V1), V2)
U52#(tt, V1, V2)U53#(isLNatKind(V2), V1, V2)U103#(tt, V1, V2)U104#(isLNatKind(V2), V1, V2)
isNatural#(head(V1))U181#(isLNatKind(V1), V1)U244#(tt, V1, V2)isLNat#(V1)
U45#(tt, V2)isLNat#(V2)U103#(tt, V1, V2)isLNatKind#(V2)
U201#(tt, V1, V2)isNaturalKind#(V1)U61#(tt, V1)isPLNatKind#(V1)
U43#(tt, V1, V2)isLNatKind#(V2)

Rewrite Rules

U101(tt, V1, V2)U102(isNaturalKind(V1), V1, V2)U102(tt, V1, V2)U103(isLNatKind(V2), V1, V2)
U103(tt, V1, V2)U104(isLNatKind(V2), V1, V2)U104(tt, V1, V2)U105(isNatural(V1), V2)
U105(tt, V2)U106(isLNat(V2))U106(tt)tt
U11(tt, N, XS)U12(isNaturalKind(N), N, XS)U111(tt, V2)U112(isLNatKind(V2))
U112(tt)ttU12(tt, N, XS)U13(isLNat(XS), N, XS)
U121(tt, V2)U122(isLNatKind(V2))U122(tt)tt
U13(tt, N, XS)U14(isLNatKind(XS), N, XS)U131(tt)tt
U14(tt, N, XS)snd(splitAt(N, XS))U141(tt)tt
U151(tt)ttU161(tt)tt
U171(tt, V2)U172(isLNatKind(V2))U172(tt)tt
U181(tt, V1)U182(isLNatKind(V1), V1)U182(tt, V1)U183(isLNat(V1))
U183(tt)ttU191(tt, V1)U192(isNaturalKind(V1), V1)
U192(tt, V1)U193(isNatural(V1))U193(tt)tt
U201(tt, V1, V2)U202(isNaturalKind(V1), V1, V2)U202(tt, V1, V2)U203(isLNatKind(V2), V1, V2)
U203(tt, V1, V2)U204(isLNatKind(V2), V1, V2)U204(tt, V1, V2)U205(isNatural(V1), V2)
U205(tt, V2)U206(isLNat(V2))U206(tt)tt
U21(tt, X, Y)U22(isLNatKind(X), X, Y)U211(tt)tt
U22(tt, X, Y)U23(isLNat(Y), X, Y)U221(tt)tt
U23(tt, X, Y)U24(isLNatKind(Y), X)U231(tt, V2)U232(isLNatKind(V2))
U232(tt)ttU24(tt, X)X
U241(tt, V1, V2)U242(isLNatKind(V1), V1, V2)U242(tt, V1, V2)U243(isLNatKind(V2), V1, V2)
U243(tt, V1, V2)U244(isLNatKind(V2), V1, V2)U244(tt, V1, V2)U245(isLNat(V1), V2)
U245(tt, V2)U246(isLNat(V2))U246(tt)tt
U251(tt, V1, V2)U252(isNaturalKind(V1), V1, V2)U252(tt, V1, V2)U253(isLNatKind(V2), V1, V2)
U253(tt, V1, V2)U254(isLNatKind(V2), V1, V2)U254(tt, V1, V2)U255(isNatural(V1), V2)
U255(tt, V2)U256(isLNat(V2))U256(tt)tt
U261(tt, V2)U262(isLNatKind(V2))U262(tt)tt
U271(tt, V2)U272(isLNatKind(V2))U272(tt)tt
U281(tt, N)U282(isNaturalKind(N), N)U282(tt, N)cons(N, natsFrom(s(N)))
U291(tt, N, XS)U292(isNaturalKind(N), N, XS)U292(tt, N, XS)U293(isLNat(XS), N, XS)
U293(tt, N, XS)U294(isLNatKind(XS), N, XS)U294(tt, N, XS)head(afterNth(N, XS))
U301(tt, X, Y)U302(isLNatKind(X), Y)U302(tt, Y)U303(isLNat(Y), Y)
U303(tt, Y)U304(isLNatKind(Y), Y)U304(tt, Y)Y
U31(tt, N, XS)U32(isNaturalKind(N), N, XS)U311(tt, XS)U312(isLNatKind(XS), XS)
U312(tt, XS)pair(nil, XS)U32(tt, N, XS)U33(isLNat(XS), N, XS)
U321(tt, N, X, XS)U322(isNaturalKind(N), N, X, XS)U322(tt, N, X, XS)U323(isNatural(X), N, X, XS)
U323(tt, N, X, XS)U324(isNaturalKind(X), N, X, XS)U324(tt, N, X, XS)U325(isLNat(XS), N, X, XS)
U325(tt, N, X, XS)U326(isLNatKind(XS), N, X, XS)U326(tt, N, X, XS)U327(splitAt(N, XS), X)
U327(pair(YS, ZS), X)pair(cons(X, YS), ZS)U33(tt, N, XS)U34(isLNatKind(XS), N)
U331(tt, N, XS)U332(isNaturalKind(N), XS)U332(tt, XS)U333(isLNat(XS), XS)
U333(tt, XS)U334(isLNatKind(XS), XS)U334(tt, XS)XS
U34(tt, N)NU341(tt, N, XS)U342(isNaturalKind(N), N, XS)
U342(tt, N, XS)U343(isLNat(XS), N, XS)U343(tt, N, XS)U344(isLNatKind(XS), N, XS)
U344(tt, N, XS)fst(splitAt(N, XS))U41(tt, V1, V2)U42(isNaturalKind(V1), V1, V2)
U42(tt, V1, V2)U43(isLNatKind(V2), V1, V2)U43(tt, V1, V2)U44(isLNatKind(V2), V1, V2)
U44(tt, V1, V2)U45(isNatural(V1), V2)U45(tt, V2)U46(isLNat(V2))
U46(tt)ttU51(tt, V1, V2)U52(isNaturalKind(V1), V1, V2)
U52(tt, V1, V2)U53(isLNatKind(V2), V1, V2)U53(tt, V1, V2)U54(isLNatKind(V2), V1, V2)
U54(tt, V1, V2)U55(isNatural(V1), V2)U55(tt, V2)U56(isLNat(V2))
U56(tt)ttU61(tt, V1)U62(isPLNatKind(V1), V1)
U62(tt, V1)U63(isPLNat(V1))U63(tt)tt
U71(tt, V1)U72(isNaturalKind(V1), V1)U72(tt, V1)U73(isNatural(V1))
U73(tt)ttU81(tt, V1)U82(isPLNatKind(V1), V1)
U82(tt, V1)U83(isPLNat(V1))U83(tt)tt
U91(tt, V1)U92(isLNatKind(V1), V1)U92(tt, V1)U93(isLNat(V1))
U93(tt)ttafterNth(N, XS)U11(isNatural(N), N, XS)
fst(pair(X, Y))U21(isLNat(X), X, Y)head(cons(N, XS))U31(isNatural(N), N, XS)
isLNat(nil)ttisLNat(afterNth(V1, V2))U41(isNaturalKind(V1), V1, V2)
isLNat(cons(V1, V2))U51(isNaturalKind(V1), V1, V2)isLNat(fst(V1))U61(isPLNatKind(V1), V1)
isLNat(natsFrom(V1))U71(isNaturalKind(V1), V1)isLNat(snd(V1))U81(isPLNatKind(V1), V1)
isLNat(tail(V1))U91(isLNatKind(V1), V1)isLNat(take(V1, V2))U101(isNaturalKind(V1), V1, V2)
isLNatKind(nil)ttisLNatKind(afterNth(V1, V2))U111(isNaturalKind(V1), V2)
isLNatKind(cons(V1, V2))U121(isNaturalKind(V1), V2)isLNatKind(fst(V1))U131(isPLNatKind(V1))
isLNatKind(natsFrom(V1))U141(isNaturalKind(V1))isLNatKind(snd(V1))U151(isPLNatKind(V1))
isLNatKind(tail(V1))U161(isLNatKind(V1))isLNatKind(take(V1, V2))U171(isNaturalKind(V1), V2)
isNatural(0)ttisNatural(head(V1))U181(isLNatKind(V1), V1)
isNatural(s(V1))U191(isNaturalKind(V1), V1)isNatural(sel(V1, V2))U201(isNaturalKind(V1), V1, V2)
isNaturalKind(0)ttisNaturalKind(head(V1))U211(isLNatKind(V1))
isNaturalKind(s(V1))U221(isNaturalKind(V1))isNaturalKind(sel(V1, V2))U231(isNaturalKind(V1), V2)
isPLNat(pair(V1, V2))U241(isLNatKind(V1), V1, V2)isPLNat(splitAt(V1, V2))U251(isNaturalKind(V1), V1, V2)
isPLNatKind(pair(V1, V2))U261(isLNatKind(V1), V2)isPLNatKind(splitAt(V1, V2))U271(isNaturalKind(V1), V2)
natsFrom(N)U281(isNatural(N), N)sel(N, XS)U291(isNatural(N), N, XS)
snd(pair(X, Y))U301(isLNat(X), X, Y)splitAt(0, XS)U311(isLNat(XS), XS)
splitAt(s(N), cons(X, XS))U321(isNatural(N), N, X, XS)tail(cons(N, XS))U331(isNatural(N), N, XS)
take(N, XS)U341(isNatural(N), N, XS)

Original Signature

Termination of terms over the following signature is verified: U311, U312, U104, U105, U106, U112, U111, U63, U62, U61, U303, U302, U304, U251, U253, U252, U255, U254, U256, U322, U323, isPLNat, isLNatKind, U321, U193, tail, U192, U191, U71, U73, U72, U122, 0, U121, U262, U261, pair, U331, U332, U333, U334, U325, U46, U324, U45, U327, U44, U131, U43, U326, U42, U41, U232, U231, cons, U341, U344, U342, splitAt, U343, U55, U54, U141, U56, U51, s, tt, U53, U52, U246, U245, U244, U243, afterNth, U242, U241, natsFrom, U161, U204, U203, U206, U205, fst, U211, U23, head, U24, U21, U22, U294, U292, U293, U151, U291, isPLNatKind, U221, isLNat, U31, U32, U33, U34, U181, U182, U183, isNatural, U281, U282, U93, U92, U91, snd, isNaturalKind, U171, U172, U272, U83, U271, U201, U202, U14, U301, U82, take, U81, U11, U12, U13, U102, U103, sel, nil, U101

Strategy

Context-sensitive strategy:
μ(isNatural#) = μ(isLNatKind#) = μ(isPLNat) = μ(0) = μ(isLNat#) = μ(T) = μ(tt) = μ(isPLNatKind) = μ(isLNat) = μ(isPLNat#) = μ(isNaturalKind#) = μ(isLNatKind) = μ(isPLNatKind#) = μ(isNatural) = μ(isNaturalKind) = μ(nil) = ∅
μ(natsFrom#) = μ(U203#) = μ(U294#) = μ(U253#) = μ(U243#) = μ(U323#) = μ(U272#) = μ(U281#) = μ(U262#) = μ(U202#) = μ(tail) = μ(U193) = μ(U192) = μ(U191) = μ(U242#) = μ(U252#) = μ(U232#) = μ(U324#) = μ(U282#) = μ(U201#) = μ(U261#) = μ(U292#) = μ(U221#) = μ(U241#) = μ(U311#) = μ(U255#) = μ(U321#) = μ(cons) = μ(U293#) = μ(U254#) = μ(U312#) = μ(s) = μ(U322#) = μ(U93#) = μ(U151#) = μ(natsFrom) = μ(U161) = μ(U56#) = μ(fst) = μ(U41#) = μ(U192#) = μ(U291#) = μ(U294) = μ(U292) = μ(U293) = μ(U151) = μ(U55#) = μ(U291) = μ(U42#) = μ(U191#) = μ(U181) = μ(U182) = μ(U183) = μ(U91#) = μ(U81#) = μ(U211#) = μ(U281) = μ(U282) = μ(U93) = μ(U92) = μ(U251#) = μ(U91) = μ(U111#) = μ(U171) = μ(U172) = μ(U272) = μ(U92#) = μ(U83) = μ(U82#) = μ(U271) = μ(U193#) = μ(U301) = μ(U82) = μ(U81) = μ(U112#) = μ(head#) = μ(U11#) = μ(U31#) = μ(fst#) = μ(U181#) = μ(U311) = μ(U312) = μ(U104) = μ(tail#) = μ(U52#) = μ(U105) = μ(U106) = μ(U112) = μ(U111) = μ(U63) = μ(U62) = μ(U61) = μ(U161#) = μ(U45#) = μ(U303) = μ(U302) = μ(U72#) = μ(U303#) = μ(U304) = μ(U251) = μ(U253) = μ(U252) = μ(U255) = μ(U254) = μ(U256) = μ(U12#) = μ(U322) = μ(U323) = μ(U182#) = μ(U321) = μ(U51#) = μ(U71) = μ(U73) = μ(U72) = μ(U71#) = μ(U122) = μ(U121) = μ(U46#) = μ(U304#) = μ(U32#) = μ(U262) = μ(U261) = μ(U334#) = μ(U13#) = μ(U102#) = μ(U23#) = μ(U122#) = μ(U331) = μ(U332) = μ(U333) = μ(U334) = μ(U325) = μ(U46) = μ(U324) = μ(U45) = μ(U43#) = μ(U327) = μ(U44) = μ(U131) = μ(U326) = μ(U43) = μ(U301#) = μ(U42) = μ(U41) = μ(U54#) = μ(U232) = μ(U231) = μ(U33#) = μ(U333#) = μ(U14#) = μ(U101#) = μ(U121#) = μ(U63#) = μ(U341) = μ(U53#) = μ(U24#) = μ(U344) = μ(U342) = μ(U343) = μ(U55) = μ(U73#) = μ(U44#) = μ(U302#) = μ(U54) = μ(U141) = μ(U56) = μ(U51) = μ(U53) = μ(U52) = μ(U246) = μ(U245) = μ(U244) = μ(U243) = μ(U242) = μ(U83#) = μ(U141#) = μ(U241) = μ(U34#) = μ(U342#) = μ(U246#) = μ(U327#) = μ(U21#) = μ(U204) = μ(U256#) = μ(U203) = μ(U206) = μ(U205) = μ(U62#) = μ(U104#) = μ(U332#) = μ(U171#) = μ(U211) = μ(snd#) = μ(head) = μ(U23) = μ(U24) = μ(U21) = μ(U22) = μ(U22#) = μ(U61#) = μ(U103#) = μ(U172#) = μ(U341#) = μ(U331#) = μ(U206#) = μ(U221) = μ(U31) = μ(U32) = μ(U33) = μ(U34) = μ(U244#) = μ(U325#) = μ(U344#) = μ(U183#) = μ(U106#) = μ(U205#) = μ(U271#) = μ(snd) = μ(U245#) = μ(U326#) = μ(U343#) = μ(U105#) = μ(U231#) = μ(U201) = μ(U202) = μ(U14) = μ(U204#) = μ(U11) = μ(U12) = μ(U131#) = μ(U13) = μ(U102) = μ(U103) = μ(U101) = {1}
μ(take#) = μ(splitAt) = μ(afterNth) = μ(splitAt#) = μ(afterNth#) = μ(take) = μ(sel) = μ(sel#) = μ(pair) = {1, 2}


The following SCCs where found

U102#(tt, V1, V2) → U103#(isLNatKind(V2), V1, V2)U41#(tt, V1, V2) → U42#(isNaturalKind(V1), V1, V2)
U191#(tt, V1) → U192#(isNaturalKind(V1), V1)U241#(tt, V1, V2) → U242#(isLNatKind(V1), V1, V2)
U82#(tt, V1) → isPLNat#(V1)U251#(tt, V1, V2) → U252#(isNaturalKind(V1), V1, V2)
U92#(tt, V1) → isLNat#(V1)U182#(tt, V1) → isLNat#(V1)
U253#(tt, V1, V2) → U254#(isLNatKind(V2), V1, V2)U54#(tt, V1, V2) → isNatural#(V1)
isLNat#(afterNth(V1, V2)) → U41#(isNaturalKind(V1), V1, V2)U42#(tt, V1, V2) → U43#(isLNatKind(V2), V1, V2)
U245#(tt, V2) → isLNat#(V2)isPLNat#(pair(V1, V2)) → U241#(isLNatKind(V1), V1, V2)
U105#(tt, V2) → isLNat#(V2)U255#(tt, V2) → isLNat#(V2)
U101#(tt, V1, V2) → U102#(isNaturalKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isLNatKind(V2), V1, V2)
U203#(tt, V1, V2) → U204#(isLNatKind(V2), V1, V2)isLNat#(cons(V1, V2)) → U51#(isNaturalKind(V1), V1, V2)
U51#(tt, V1, V2) → U52#(isNaturalKind(V1), V1, V2)isLNat#(natsFrom(V1)) → U71#(isNaturalKind(V1), V1)
U201#(tt, V1, V2) → U202#(isNaturalKind(V1), V1, V2)U61#(tt, V1) → U62#(isPLNatKind(V1), V1)
U192#(tt, V1) → isNatural#(V1)U181#(tt, V1) → U182#(isLNatKind(V1), V1)
U71#(tt, V1) → U72#(isNaturalKind(V1), V1)U62#(tt, V1) → isPLNat#(V1)
U202#(tt, V1, V2) → U203#(isLNatKind(V2), V1, V2)isNatural#(sel(V1, V2)) → U201#(isNaturalKind(V1), V1, V2)
U104#(tt, V1, V2) → isNatural#(V1)U243#(tt, V1, V2) → U244#(isLNatKind(V2), V1, V2)
isLNat#(take(V1, V2)) → U101#(isNaturalKind(V1), V1, V2)U55#(tt, V2) → isLNat#(V2)
isPLNat#(splitAt(V1, V2)) → U251#(isNaturalKind(V1), V1, V2)isLNat#(tail(V1)) → U91#(isLNatKind(V1), V1)
U205#(tt, V2) → isLNat#(V2)U204#(tt, V1, V2) → U205#(isNatural(V1), V2)
U44#(tt, V1, V2) → isNatural#(V1)U72#(tt, V1) → isNatural#(V1)
U254#(tt, V1, V2) → isNatural#(V1)U244#(tt, V1, V2) → U245#(isLNat(V1), V2)
isLNat#(fst(V1)) → U61#(isPLNatKind(V1), V1)U254#(tt, V1, V2) → U255#(isNatural(V1), V2)
U204#(tt, V1, V2) → isNatural#(V1)U91#(tt, V1) → U92#(isLNatKind(V1), V1)
U81#(tt, V1) → U82#(isPLNatKind(V1), V1)U242#(tt, V1, V2) → U243#(isLNatKind(V2), V1, V2)
U54#(tt, V1, V2) → U55#(isNatural(V1), V2)U252#(tt, V1, V2) → U253#(isLNatKind(V2), V1, V2)
U53#(tt, V1, V2) → U54#(isLNatKind(V2), V1, V2)isNatural#(s(V1)) → U191#(isNaturalKind(V1), V1)
U44#(tt, V1, V2) → U45#(isNatural(V1), V2)isLNat#(snd(V1)) → U81#(isPLNatKind(V1), V1)
U104#(tt, V1, V2) → U105#(isNatural(V1), V2)U103#(tt, V1, V2) → U104#(isLNatKind(V2), V1, V2)
U52#(tt, V1, V2) → U53#(isLNatKind(V2), V1, V2)isNatural#(head(V1)) → U181#(isLNatKind(V1), V1)
U244#(tt, V1, V2) → isLNat#(V1)U45#(tt, V2) → isLNat#(V2)