63.80/17.37 WORST_CASE(Omega(n^1), O(n^1)) 63.80/17.39 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 63.80/17.39 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 63.80/17.39 63.80/17.39 63.80/17.39 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 63.80/17.39 63.80/17.39 (0) CpxTRS 63.80/17.39 (1) NestedDefinedSymbolProof [UPPER BOUND(ID), 28 ms] 63.80/17.39 (2) CpxTRS 63.80/17.39 (3) RcToIrcProof [BOTH BOUNDS(ID, ID), 64 ms] 63.80/17.39 (4) CpxTRS 63.80/17.39 (5) CpxTrsToCdtProof [UPPER BOUND(ID), 11 ms] 63.80/17.39 (6) CdtProblem 63.80/17.39 (7) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] 63.80/17.39 (8) CdtProblem 63.80/17.39 (9) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] 63.80/17.39 (10) CdtProblem 63.80/17.39 (11) CdtUsableRulesProof [BOTH BOUNDS(ID, ID), 0 ms] 63.80/17.39 (12) CdtProblem 63.80/17.39 (13) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 376 ms] 63.80/17.39 (14) CdtProblem 63.80/17.39 (15) CdtRuleRemovalProof [UPPER BOUND(ADD(n^1)), 86 ms] 63.80/17.39 (16) CdtProblem 63.80/17.39 (17) SIsEmptyProof [BOTH BOUNDS(ID, ID), 0 ms] 63.80/17.39 (18) BOUNDS(1, 1) 63.80/17.39 (19) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] 63.80/17.39 (20) CpxTRS 63.80/17.39 (21) TypeInferenceProof [BOTH BOUNDS(ID, ID), 5 ms] 63.80/17.39 (22) typed CpxTrs 63.80/17.39 (23) OrderProof [LOWER BOUND(ID), 0 ms] 63.80/17.39 (24) typed CpxTrs 63.80/17.39 (25) RewriteLemmaProof [LOWER BOUND(ID), 600 ms] 63.80/17.39 (26) BEST 63.80/17.39 (27) proven lower bound 63.80/17.39 (28) LowerBoundPropagationProof [FINISHED, 0 ms] 63.80/17.39 (29) BOUNDS(n^1, INF) 63.80/17.39 (30) typed CpxTrs 63.80/17.39 (31) RewriteLemmaProof [LOWER BOUND(ID), 199 ms] 63.80/17.39 (32) typed CpxTrs 63.80/17.39 (33) RewriteLemmaProof [LOWER BOUND(ID), 135 ms] 63.80/17.39 (34) typed CpxTrs 63.80/17.39 (35) RewriteLemmaProof [LOWER BOUND(ID), 125 ms] 63.80/17.39 (36) typed CpxTrs 63.80/17.39 (37) RewriteLemmaProof [LOWER BOUND(ID), 92 ms] 63.80/17.39 (38) typed CpxTrs 63.80/17.39 (39) RewriteLemmaProof [LOWER BOUND(ID), 99 ms] 63.80/17.39 (40) typed CpxTrs 63.80/17.39 (41) RewriteLemmaProof [LOWER BOUND(ID), 186 ms] 63.80/17.39 (42) typed CpxTrs 63.80/17.39 (43) RewriteLemmaProof [LOWER BOUND(ID), 121 ms] 63.80/17.39 (44) typed CpxTrs 63.80/17.39 (45) RewriteLemmaProof [LOWER BOUND(ID), 153 ms] 63.80/17.39 (46) typed CpxTrs 63.80/17.39 (47) RewriteLemmaProof [LOWER BOUND(ID), 84 ms] 63.80/17.39 (48) typed CpxTrs 63.80/17.39 (49) RewriteLemmaProof [LOWER BOUND(ID), 115 ms] 63.80/17.39 (50) typed CpxTrs 63.80/17.39 (51) RewriteLemmaProof [LOWER BOUND(ID), 93 ms] 63.80/17.39 (52) typed CpxTrs 63.80/17.39 (53) RewriteLemmaProof [LOWER BOUND(ID), 177 ms] 63.80/17.39 (54) typed CpxTrs 63.80/17.39 (55) RewriteLemmaProof [LOWER BOUND(ID), 129 ms] 63.80/17.39 (56) typed CpxTrs 63.80/17.39 (57) RewriteLemmaProof [LOWER BOUND(ID), 122 ms] 63.80/17.39 (58) typed CpxTrs 63.80/17.39 (59) RewriteLemmaProof [LOWER BOUND(ID), 122 ms] 63.80/17.39 (60) typed CpxTrs 63.80/17.39 (61) RewriteLemmaProof [LOWER BOUND(ID), 235 ms] 63.80/17.39 (62) typed CpxTrs 63.80/17.39 (63) RewriteLemmaProof [LOWER BOUND(ID), 213 ms] 63.80/17.39 (64) typed CpxTrs 63.80/17.39 (65) RewriteLemmaProof [LOWER BOUND(ID), 208 ms] 63.80/17.39 (66) typed CpxTrs 63.80/17.39 (67) RewriteLemmaProof [LOWER BOUND(ID), 141 ms] 63.80/17.39 (68) typed CpxTrs 63.80/17.39 (69) RewriteLemmaProof [LOWER BOUND(ID), 190 ms] 63.80/17.39 (70) typed CpxTrs 63.80/17.39 (71) RewriteLemmaProof [LOWER BOUND(ID), 101 ms] 63.80/17.39 (72) typed CpxTrs 63.80/17.39 (73) RewriteLemmaProof [LOWER BOUND(ID), 208 ms] 63.80/17.39 (74) typed CpxTrs 63.80/17.39 (75) RewriteLemmaProof [LOWER BOUND(ID), 84 ms] 63.80/17.39 (76) typed CpxTrs 63.80/17.39 (77) RewriteLemmaProof [LOWER BOUND(ID), 129 ms] 63.80/17.39 (78) typed CpxTrs 63.80/17.39 (79) RewriteLemmaProof [LOWER BOUND(ID), 67 ms] 63.80/17.39 (80) typed CpxTrs 63.80/17.39 (81) RewriteLemmaProof [LOWER BOUND(ID), 120 ms] 63.80/17.39 (82) typed CpxTrs 63.80/17.39 (83) RewriteLemmaProof [LOWER BOUND(ID), 83 ms] 63.80/17.39 (84) typed CpxTrs 63.80/17.39 (85) RewriteLemmaProof [LOWER BOUND(ID), 292 ms] 63.80/17.39 (86) typed CpxTrs 63.80/17.39 (87) RewriteLemmaProof [LOWER BOUND(ID), 197 ms] 63.80/17.39 (88) typed CpxTrs 63.80/17.39 (89) RewriteLemmaProof [LOWER BOUND(ID), 217 ms] 63.80/17.39 (90) typed CpxTrs 63.80/17.39 (91) RewriteLemmaProof [LOWER BOUND(ID), 180 ms] 63.80/17.39 (92) typed CpxTrs 63.80/17.39 (93) RewriteLemmaProof [LOWER BOUND(ID), 243 ms] 63.80/17.39 (94) typed CpxTrs 63.80/17.39 (95) RewriteLemmaProof [LOWER BOUND(ID), 294 ms] 63.80/17.39 (96) typed CpxTrs 63.80/17.39 (97) RewriteLemmaProof [LOWER BOUND(ID), 160 ms] 63.80/17.39 (98) typed CpxTrs 63.80/17.39 (99) RewriteLemmaProof [LOWER BOUND(ID), 204 ms] 63.80/17.39 (100) typed CpxTrs 63.80/17.39 (101) RewriteLemmaProof [LOWER BOUND(ID), 161 ms] 63.80/17.39 (102) typed CpxTrs 63.80/17.39 (103) RewriteLemmaProof [LOWER BOUND(ID), 203 ms] 63.80/17.39 (104) typed CpxTrs 63.80/17.39 (105) RewriteLemmaProof [LOWER BOUND(ID), 258 ms] 63.80/17.39 (106) typed CpxTrs 63.80/17.39 (107) RewriteLemmaProof [LOWER BOUND(ID), 218 ms] 63.80/17.39 (108) typed CpxTrs 63.80/17.39 (109) RewriteLemmaProof [LOWER BOUND(ID), 176 ms] 63.80/17.39 (110) typed CpxTrs 63.80/17.39 (111) RewriteLemmaProof [LOWER BOUND(ID), 316 ms] 63.80/17.39 (112) typed CpxTrs 63.80/17.39 63.80/17.39 63.80/17.39 ---------------------------------------- 63.80/17.39 63.80/17.39 (0) 63.80/17.39 Obligation: 63.80/17.39 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, n^1). 63.80/17.39 63.80/17.39 63.80/17.39 The TRS R consists of the following rules: 63.80/17.39 63.80/17.39 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 63.80/17.39 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 63.80/17.39 active(U103(tt)) -> mark(tt) 63.80/17.39 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 63.80/17.39 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 63.80/17.39 active(U112(tt)) -> mark(tt) 63.80/17.39 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 63.80/17.39 active(U122(tt)) -> mark(tt) 63.80/17.39 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 63.80/17.39 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 63.80/17.39 active(U133(tt)) -> mark(tt) 63.80/17.39 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 63.80/17.39 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 63.80/17.39 active(U143(tt)) -> mark(tt) 63.80/17.39 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 63.80/17.39 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 63.80/17.39 active(U153(tt)) -> mark(tt) 63.80/17.39 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 63.80/17.39 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 63.80/17.39 active(U181(tt, Y)) -> mark(Y) 63.80/17.39 active(U191(tt, XS)) -> mark(pair(nil, XS)) 63.80/17.39 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 63.80/17.39 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 63.80/17.39 active(U21(tt, X)) -> mark(X) 63.80/17.39 active(U211(tt, XS)) -> mark(XS) 63.80/17.39 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 63.80/17.39 active(U31(tt, N)) -> mark(N) 63.80/17.39 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 63.80/17.39 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 63.80/17.39 active(U43(tt)) -> mark(tt) 63.80/17.39 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 63.80/17.39 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 63.80/17.39 active(U53(tt)) -> mark(tt) 63.80/17.39 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 63.80/17.39 active(U62(tt)) -> mark(tt) 63.80/17.39 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 63.80/17.39 active(U72(tt)) -> mark(tt) 63.80/17.39 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 63.80/17.39 active(U82(tt)) -> mark(tt) 63.80/17.39 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 63.80/17.39 active(U92(tt)) -> mark(tt) 63.80/17.39 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 63.80/17.39 active(and(tt, X)) -> mark(X) 63.80/17.39 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 63.80/17.39 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 63.80/17.39 active(isLNat(nil)) -> mark(tt) 63.80/17.39 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 63.80/17.39 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 63.80/17.39 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 63.80/17.39 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 63.80/17.39 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isLNatKind(nil)) -> mark(tt) 63.80/17.39 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 63.80/17.39 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 63.80/17.39 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 63.80/17.39 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 63.80/17.39 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isNatural(0)) -> mark(tt) 63.80/17.39 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 63.80/17.39 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 63.80/17.39 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isNaturalKind(0)) -> mark(tt) 63.80/17.39 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 63.80/17.39 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 63.80/17.39 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 63.80/17.39 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 63.80/17.39 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 63.80/17.39 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 63.80/17.39 active(splitAt(0, XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 63.80/17.39 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 63.80/17.39 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 63.80/17.39 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 63.80/17.39 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 63.80/17.39 active(U102(X1, X2)) -> U102(active(X1), X2) 63.80/17.39 active(U103(X)) -> U103(active(X)) 63.80/17.39 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 63.80/17.39 active(snd(X)) -> snd(active(X)) 63.80/17.39 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 63.80/17.39 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 63.80/17.39 active(U111(X1, X2)) -> U111(active(X1), X2) 63.80/17.39 active(U112(X)) -> U112(active(X)) 63.80/17.39 active(U121(X1, X2)) -> U121(active(X1), X2) 63.80/17.39 active(U122(X)) -> U122(active(X)) 63.80/17.39 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 63.80/17.39 active(U132(X1, X2)) -> U132(active(X1), X2) 63.80/17.39 active(U133(X)) -> U133(active(X)) 63.80/17.39 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 63.80/17.39 active(U142(X1, X2)) -> U142(active(X1), X2) 63.80/17.39 active(U143(X)) -> U143(active(X)) 63.80/17.39 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 63.80/17.39 active(U152(X1, X2)) -> U152(active(X1), X2) 63.80/17.39 active(U153(X)) -> U153(active(X)) 63.80/17.39 active(U161(X1, X2)) -> U161(active(X1), X2) 63.80/17.39 active(cons(X1, X2)) -> cons(active(X1), X2) 63.80/17.39 active(natsFrom(X)) -> natsFrom(active(X)) 63.80/17.39 active(s(X)) -> s(active(X)) 63.80/17.39 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 63.80/17.39 active(head(X)) -> head(active(X)) 63.80/17.39 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 63.80/17.39 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 63.80/17.39 active(U181(X1, X2)) -> U181(active(X1), X2) 63.80/17.39 active(U191(X1, X2)) -> U191(active(X1), X2) 63.80/17.39 active(pair(X1, X2)) -> pair(active(X1), X2) 63.80/17.39 active(pair(X1, X2)) -> pair(X1, active(X2)) 63.80/17.39 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 63.80/17.39 active(U202(X1, X2)) -> U202(active(X1), X2) 63.80/17.39 active(U21(X1, X2)) -> U21(active(X1), X2) 63.80/17.39 active(U211(X1, X2)) -> U211(active(X1), X2) 63.80/17.39 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 63.80/17.39 active(fst(X)) -> fst(active(X)) 63.80/17.39 active(U31(X1, X2)) -> U31(active(X1), X2) 63.80/17.39 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 63.80/17.39 active(U42(X1, X2)) -> U42(active(X1), X2) 63.80/17.39 active(U43(X)) -> U43(active(X)) 63.80/17.39 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 63.80/17.39 active(U52(X1, X2)) -> U52(active(X1), X2) 63.80/17.39 active(U53(X)) -> U53(active(X)) 63.80/17.39 active(U61(X1, X2)) -> U61(active(X1), X2) 63.80/17.39 active(U62(X)) -> U62(active(X)) 63.80/17.39 active(U71(X1, X2)) -> U71(active(X1), X2) 63.80/17.39 active(U72(X)) -> U72(active(X)) 63.80/17.39 active(U81(X1, X2)) -> U81(active(X1), X2) 63.80/17.39 active(U82(X)) -> U82(active(X)) 63.80/17.39 active(U91(X1, X2)) -> U91(active(X1), X2) 63.80/17.39 active(U92(X)) -> U92(active(X)) 63.80/17.39 active(and(X1, X2)) -> and(active(X1), X2) 63.80/17.39 active(tail(X)) -> tail(active(X)) 63.80/17.39 active(take(X1, X2)) -> take(active(X1), X2) 63.80/17.39 active(take(X1, X2)) -> take(X1, active(X2)) 63.80/17.39 active(sel(X1, X2)) -> sel(active(X1), X2) 63.80/17.39 active(sel(X1, X2)) -> sel(X1, active(X2)) 63.80/17.39 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 63.80/17.39 U102(mark(X1), X2) -> mark(U102(X1, X2)) 63.80/17.39 U103(mark(X)) -> mark(U103(X)) 63.80/17.39 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 63.80/17.39 snd(mark(X)) -> mark(snd(X)) 63.80/17.39 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 63.80/17.39 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 63.80/17.39 U111(mark(X1), X2) -> mark(U111(X1, X2)) 63.80/17.39 U112(mark(X)) -> mark(U112(X)) 63.80/17.39 U121(mark(X1), X2) -> mark(U121(X1, X2)) 63.80/17.39 U122(mark(X)) -> mark(U122(X)) 63.80/17.39 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 63.80/17.39 U132(mark(X1), X2) -> mark(U132(X1, X2)) 63.80/17.39 U133(mark(X)) -> mark(U133(X)) 63.80/17.39 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 63.80/17.39 U142(mark(X1), X2) -> mark(U142(X1, X2)) 63.80/17.39 U143(mark(X)) -> mark(U143(X)) 63.80/17.39 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 63.80/17.39 U152(mark(X1), X2) -> mark(U152(X1, X2)) 63.80/17.39 U153(mark(X)) -> mark(U153(X)) 63.80/17.39 U161(mark(X1), X2) -> mark(U161(X1, X2)) 63.80/17.39 cons(mark(X1), X2) -> mark(cons(X1, X2)) 63.80/17.39 natsFrom(mark(X)) -> mark(natsFrom(X)) 63.80/17.39 s(mark(X)) -> mark(s(X)) 63.80/17.39 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 63.80/17.39 head(mark(X)) -> mark(head(X)) 63.80/17.39 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 63.80/17.39 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 63.80/17.39 U181(mark(X1), X2) -> mark(U181(X1, X2)) 63.80/17.39 U191(mark(X1), X2) -> mark(U191(X1, X2)) 63.80/17.39 pair(mark(X1), X2) -> mark(pair(X1, X2)) 63.80/17.39 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 63.80/17.39 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 63.80/17.39 U202(mark(X1), X2) -> mark(U202(X1, X2)) 63.80/17.39 U21(mark(X1), X2) -> mark(U21(X1, X2)) 63.80/17.39 U211(mark(X1), X2) -> mark(U211(X1, X2)) 63.80/17.39 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 63.80/17.39 fst(mark(X)) -> mark(fst(X)) 63.80/17.39 U31(mark(X1), X2) -> mark(U31(X1, X2)) 63.80/17.39 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 63.80/17.39 U42(mark(X1), X2) -> mark(U42(X1, X2)) 63.80/17.39 U43(mark(X)) -> mark(U43(X)) 63.80/17.39 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 63.80/17.39 U52(mark(X1), X2) -> mark(U52(X1, X2)) 63.80/17.39 U53(mark(X)) -> mark(U53(X)) 63.80/17.39 U61(mark(X1), X2) -> mark(U61(X1, X2)) 63.80/17.39 U62(mark(X)) -> mark(U62(X)) 63.80/17.39 U71(mark(X1), X2) -> mark(U71(X1, X2)) 63.80/17.39 U72(mark(X)) -> mark(U72(X)) 63.80/17.39 U81(mark(X1), X2) -> mark(U81(X1, X2)) 63.80/17.39 U82(mark(X)) -> mark(U82(X)) 63.80/17.39 U91(mark(X1), X2) -> mark(U91(X1, X2)) 63.80/17.39 U92(mark(X)) -> mark(U92(X)) 63.80/17.39 and(mark(X1), X2) -> mark(and(X1, X2)) 63.80/17.39 tail(mark(X)) -> mark(tail(X)) 63.80/17.39 take(mark(X1), X2) -> mark(take(X1, X2)) 63.80/17.39 take(X1, mark(X2)) -> mark(take(X1, X2)) 63.80/17.39 sel(mark(X1), X2) -> mark(sel(X1, X2)) 63.80/17.39 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 63.80/17.39 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(tt) -> ok(tt) 63.80/17.39 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 63.80/17.39 proper(isNatural(X)) -> isNatural(proper(X)) 63.80/17.39 proper(U103(X)) -> U103(proper(X)) 63.80/17.39 proper(isLNat(X)) -> isLNat(proper(X)) 63.80/17.39 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(snd(X)) -> snd(proper(X)) 63.80/17.39 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 63.80/17.39 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 63.80/17.39 proper(U112(X)) -> U112(proper(X)) 63.80/17.39 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 63.80/17.39 proper(U122(X)) -> U122(proper(X)) 63.80/17.39 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 63.80/17.39 proper(U133(X)) -> U133(proper(X)) 63.80/17.39 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 63.80/17.39 proper(U143(X)) -> U143(proper(X)) 63.80/17.39 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 63.80/17.39 proper(U153(X)) -> U153(proper(X)) 63.80/17.39 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 63.80/17.39 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 63.80/17.39 proper(natsFrom(X)) -> natsFrom(proper(X)) 63.80/17.39 proper(s(X)) -> s(proper(X)) 63.80/17.39 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(head(X)) -> head(proper(X)) 63.80/17.39 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 63.80/17.39 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 63.80/17.39 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 63.80/17.39 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 63.80/17.39 proper(nil) -> ok(nil) 63.80/17.39 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 63.80/17.39 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 63.80/17.39 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 63.80/17.39 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 63.80/17.39 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(fst(X)) -> fst(proper(X)) 63.80/17.39 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 63.80/17.39 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 63.80/17.39 proper(U43(X)) -> U43(proper(X)) 63.80/17.39 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 63.80/17.39 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 63.80/17.39 proper(U53(X)) -> U53(proper(X)) 63.80/17.39 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 63.80/17.39 proper(U62(X)) -> U62(proper(X)) 63.80/17.39 proper(isPLNat(X)) -> isPLNat(proper(X)) 63.80/17.39 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 63.80/17.39 proper(U72(X)) -> U72(proper(X)) 63.80/17.39 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 63.80/17.39 proper(U82(X)) -> U82(proper(X)) 63.80/17.39 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 63.80/17.39 proper(U92(X)) -> U92(proper(X)) 63.80/17.39 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 63.80/17.39 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 63.80/17.39 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 63.80/17.39 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 63.80/17.39 proper(tail(X)) -> tail(proper(X)) 63.80/17.39 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 63.80/17.39 proper(0) -> ok(0) 63.80/17.39 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 63.80/17.39 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 63.80/17.39 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 63.80/17.39 isNatural(ok(X)) -> ok(isNatural(X)) 63.80/17.39 U103(ok(X)) -> ok(U103(X)) 63.80/17.39 isLNat(ok(X)) -> ok(isLNat(X)) 63.80/17.39 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 63.80/17.39 snd(ok(X)) -> ok(snd(X)) 63.80/17.39 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 63.80/17.39 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 63.80/17.39 U112(ok(X)) -> ok(U112(X)) 63.80/17.39 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 63.80/17.39 U122(ok(X)) -> ok(U122(X)) 63.80/17.39 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 63.80/17.39 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 63.80/17.39 U133(ok(X)) -> ok(U133(X)) 63.80/17.39 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 63.80/17.39 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 63.80/17.39 U143(ok(X)) -> ok(U143(X)) 63.80/17.39 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 63.80/17.39 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 63.80/17.39 U153(ok(X)) -> ok(U153(X)) 63.80/17.39 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 63.80/17.39 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 63.80/17.39 natsFrom(ok(X)) -> ok(natsFrom(X)) 63.80/17.39 s(ok(X)) -> ok(s(X)) 63.80/17.39 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 63.80/17.39 head(ok(X)) -> ok(head(X)) 63.80/17.39 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 63.80/17.39 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 63.80/17.39 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 63.80/17.39 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 63.80/17.39 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 63.80/17.39 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 63.80/17.39 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 63.80/17.39 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 63.80/17.39 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 63.80/17.39 fst(ok(X)) -> ok(fst(X)) 63.80/17.39 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 63.80/17.39 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 63.80/17.39 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 63.80/17.39 U43(ok(X)) -> ok(U43(X)) 63.80/17.39 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 63.80/17.39 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 63.80/17.39 U53(ok(X)) -> ok(U53(X)) 63.80/17.39 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 63.80/17.39 U62(ok(X)) -> ok(U62(X)) 63.80/17.39 isPLNat(ok(X)) -> ok(isPLNat(X)) 63.80/17.39 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 63.80/17.39 U72(ok(X)) -> ok(U72(X)) 63.80/17.39 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 63.80/17.39 U82(ok(X)) -> ok(U82(X)) 63.80/17.39 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 63.80/17.39 U92(ok(X)) -> ok(U92(X)) 63.80/17.39 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 63.80/17.39 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 63.80/17.39 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 63.80/17.39 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 63.80/17.39 tail(ok(X)) -> ok(tail(X)) 63.80/17.39 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 63.80/17.39 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 63.80/17.39 top(mark(X)) -> top(proper(X)) 63.80/17.39 top(ok(X)) -> top(active(X)) 63.80/17.39 63.80/17.39 S is empty. 63.80/17.39 Rewrite Strategy: FULL 63.80/17.39 ---------------------------------------- 63.80/17.39 63.80/17.39 (1) NestedDefinedSymbolProof (UPPER BOUND(ID)) 63.80/17.39 The following defined symbols can occur below the 0th argument of top: proper, active 63.80/17.39 The following defined symbols can occur below the 0th argument of proper: proper, active 63.80/17.39 The following defined symbols can occur below the 0th argument of active: proper, active 63.80/17.39 63.80/17.39 Hence, the left-hand sides of the following rules are not basic-reachable and can be removed: 63.80/17.39 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 63.80/17.39 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 63.80/17.39 active(U103(tt)) -> mark(tt) 63.80/17.39 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 63.80/17.39 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 63.80/17.39 active(U112(tt)) -> mark(tt) 63.80/17.39 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 63.80/17.39 active(U122(tt)) -> mark(tt) 63.80/17.39 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 63.80/17.39 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 63.80/17.39 active(U133(tt)) -> mark(tt) 63.80/17.39 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 63.80/17.39 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 63.80/17.39 active(U143(tt)) -> mark(tt) 63.80/17.39 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 63.80/17.39 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 63.80/17.39 active(U153(tt)) -> mark(tt) 63.80/17.39 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 63.80/17.39 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 63.80/17.39 active(U181(tt, Y)) -> mark(Y) 63.80/17.39 active(U191(tt, XS)) -> mark(pair(nil, XS)) 63.80/17.39 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 63.80/17.39 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 63.80/17.39 active(U21(tt, X)) -> mark(X) 63.80/17.39 active(U211(tt, XS)) -> mark(XS) 63.80/17.39 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 63.80/17.39 active(U31(tt, N)) -> mark(N) 63.80/17.39 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 63.80/17.39 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 63.80/17.39 active(U43(tt)) -> mark(tt) 63.80/17.39 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 63.80/17.39 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 63.80/17.39 active(U53(tt)) -> mark(tt) 63.80/17.39 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 63.80/17.39 active(U62(tt)) -> mark(tt) 63.80/17.39 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 63.80/17.39 active(U72(tt)) -> mark(tt) 63.80/17.39 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 63.80/17.39 active(U82(tt)) -> mark(tt) 63.80/17.39 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 63.80/17.39 active(U92(tt)) -> mark(tt) 63.80/17.39 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 63.80/17.39 active(and(tt, X)) -> mark(X) 63.80/17.39 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 63.80/17.39 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 63.80/17.39 active(isLNat(nil)) -> mark(tt) 63.80/17.39 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 63.80/17.39 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 63.80/17.39 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 63.80/17.39 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 63.80/17.39 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isLNatKind(nil)) -> mark(tt) 63.80/17.39 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 63.80/17.39 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 63.80/17.39 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 63.80/17.39 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 63.80/17.39 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isNatural(0)) -> mark(tt) 63.80/17.39 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 63.80/17.39 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 63.80/17.39 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isNaturalKind(0)) -> mark(tt) 63.80/17.39 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 63.80/17.39 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 63.80/17.39 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 63.80/17.39 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 63.80/17.39 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 63.80/17.39 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 63.80/17.39 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 63.80/17.39 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 63.80/17.39 active(splitAt(0, XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 63.80/17.39 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 63.80/17.39 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 63.80/17.39 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 63.80/17.39 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 63.80/17.39 active(U102(X1, X2)) -> U102(active(X1), X2) 63.80/17.39 active(U103(X)) -> U103(active(X)) 63.80/17.39 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 63.80/17.39 active(snd(X)) -> snd(active(X)) 63.80/17.39 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 63.80/17.39 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 63.80/17.39 active(U111(X1, X2)) -> U111(active(X1), X2) 63.80/17.39 active(U112(X)) -> U112(active(X)) 63.80/17.39 active(U121(X1, X2)) -> U121(active(X1), X2) 63.80/17.39 active(U122(X)) -> U122(active(X)) 63.80/17.39 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 63.80/17.39 active(U132(X1, X2)) -> U132(active(X1), X2) 63.80/17.39 active(U133(X)) -> U133(active(X)) 63.80/17.39 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 63.80/17.39 active(U142(X1, X2)) -> U142(active(X1), X2) 63.80/17.39 active(U143(X)) -> U143(active(X)) 63.80/17.39 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 63.80/17.39 active(U152(X1, X2)) -> U152(active(X1), X2) 63.80/17.39 active(U153(X)) -> U153(active(X)) 63.80/17.39 active(U161(X1, X2)) -> U161(active(X1), X2) 63.80/17.39 active(cons(X1, X2)) -> cons(active(X1), X2) 63.80/17.39 active(natsFrom(X)) -> natsFrom(active(X)) 63.80/17.39 active(s(X)) -> s(active(X)) 63.80/17.39 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 63.80/17.39 active(head(X)) -> head(active(X)) 63.80/17.39 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 63.80/17.39 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 63.80/17.39 active(U181(X1, X2)) -> U181(active(X1), X2) 63.80/17.39 active(U191(X1, X2)) -> U191(active(X1), X2) 63.80/17.39 active(pair(X1, X2)) -> pair(active(X1), X2) 63.80/17.39 active(pair(X1, X2)) -> pair(X1, active(X2)) 63.80/17.39 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 63.80/17.39 active(U202(X1, X2)) -> U202(active(X1), X2) 63.80/17.39 active(U21(X1, X2)) -> U21(active(X1), X2) 63.80/17.39 active(U211(X1, X2)) -> U211(active(X1), X2) 63.80/17.39 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 63.80/17.39 active(fst(X)) -> fst(active(X)) 63.80/17.39 active(U31(X1, X2)) -> U31(active(X1), X2) 63.80/17.39 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 63.80/17.39 active(U42(X1, X2)) -> U42(active(X1), X2) 63.80/17.39 active(U43(X)) -> U43(active(X)) 63.80/17.39 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 63.80/17.39 active(U52(X1, X2)) -> U52(active(X1), X2) 63.80/17.39 active(U53(X)) -> U53(active(X)) 63.80/17.39 active(U61(X1, X2)) -> U61(active(X1), X2) 63.80/17.39 active(U62(X)) -> U62(active(X)) 63.80/17.39 active(U71(X1, X2)) -> U71(active(X1), X2) 63.80/17.39 active(U72(X)) -> U72(active(X)) 64.15/17.39 active(U81(X1, X2)) -> U81(active(X1), X2) 64.15/17.39 active(U82(X)) -> U82(active(X)) 64.15/17.39 active(U91(X1, X2)) -> U91(active(X1), X2) 64.15/17.39 active(U92(X)) -> U92(active(X)) 64.15/17.39 active(and(X1, X2)) -> and(active(X1), X2) 64.15/17.39 active(tail(X)) -> tail(active(X)) 64.15/17.39 active(take(X1, X2)) -> take(active(X1), X2) 64.15/17.39 active(take(X1, X2)) -> take(X1, active(X2)) 64.15/17.39 active(sel(X1, X2)) -> sel(active(X1), X2) 64.15/17.39 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.15/17.39 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.15/17.39 proper(isNatural(X)) -> isNatural(proper(X)) 64.15/17.39 proper(U103(X)) -> U103(proper(X)) 64.15/17.39 proper(isLNat(X)) -> isLNat(proper(X)) 64.15/17.39 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(snd(X)) -> snd(proper(X)) 64.15/17.39 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.15/17.39 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.15/17.39 proper(U112(X)) -> U112(proper(X)) 64.15/17.39 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.15/17.39 proper(U122(X)) -> U122(proper(X)) 64.15/17.39 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.15/17.39 proper(U133(X)) -> U133(proper(X)) 64.15/17.39 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.15/17.39 proper(U143(X)) -> U143(proper(X)) 64.15/17.39 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.15/17.39 proper(U153(X)) -> U153(proper(X)) 64.15/17.39 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.15/17.39 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.15/17.39 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.15/17.39 proper(s(X)) -> s(proper(X)) 64.15/17.39 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(head(X)) -> head(proper(X)) 64.15/17.39 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.15/17.39 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.15/17.39 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.15/17.39 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.15/17.39 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.15/17.39 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.15/17.39 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.15/17.39 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.15/17.39 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(fst(X)) -> fst(proper(X)) 64.15/17.39 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.15/17.39 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.15/17.39 proper(U43(X)) -> U43(proper(X)) 64.15/17.39 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.15/17.39 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.15/17.39 proper(U53(X)) -> U53(proper(X)) 64.15/17.39 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.15/17.39 proper(U62(X)) -> U62(proper(X)) 64.15/17.39 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.15/17.39 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.15/17.39 proper(U72(X)) -> U72(proper(X)) 64.15/17.39 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.15/17.39 proper(U82(X)) -> U82(proper(X)) 64.15/17.39 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.15/17.39 proper(U92(X)) -> U92(proper(X)) 64.15/17.39 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.15/17.39 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.15/17.39 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.15/17.39 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.15/17.39 proper(tail(X)) -> tail(proper(X)) 64.15/17.39 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.15/17.39 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.15/17.39 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (2) 64.15/17.39 Obligation: 64.15/17.39 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 64.15/17.39 64.15/17.39 64.15/17.39 The TRS R consists of the following rules: 64.15/17.39 64.15/17.39 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.15/17.39 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.15/17.39 U103(mark(X)) -> mark(U103(X)) 64.15/17.39 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.15/17.39 snd(mark(X)) -> mark(snd(X)) 64.15/17.39 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.15/17.39 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.15/17.39 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.15/17.39 U112(mark(X)) -> mark(U112(X)) 64.15/17.39 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.15/17.39 U122(mark(X)) -> mark(U122(X)) 64.15/17.39 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.15/17.39 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.15/17.39 U133(mark(X)) -> mark(U133(X)) 64.15/17.39 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.15/17.39 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.15/17.39 U143(mark(X)) -> mark(U143(X)) 64.15/17.39 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.15/17.39 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.15/17.39 U153(mark(X)) -> mark(U153(X)) 64.15/17.39 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.15/17.39 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.15/17.39 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.15/17.39 s(mark(X)) -> mark(s(X)) 64.15/17.39 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.15/17.39 head(mark(X)) -> mark(head(X)) 64.15/17.39 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.15/17.39 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.15/17.39 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.15/17.39 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.15/17.39 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.15/17.39 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.15/17.39 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.15/17.39 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.15/17.39 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.15/17.39 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.15/17.39 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.15/17.39 fst(mark(X)) -> mark(fst(X)) 64.15/17.39 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.15/17.39 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.15/17.39 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.15/17.39 U43(mark(X)) -> mark(U43(X)) 64.15/17.39 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.15/17.39 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.15/17.39 U53(mark(X)) -> mark(U53(X)) 64.15/17.39 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.15/17.39 U62(mark(X)) -> mark(U62(X)) 64.15/17.39 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.15/17.39 U72(mark(X)) -> mark(U72(X)) 64.15/17.39 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.15/17.39 U82(mark(X)) -> mark(U82(X)) 64.15/17.39 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.15/17.39 U92(mark(X)) -> mark(U92(X)) 64.15/17.39 and(mark(X1), X2) -> mark(and(X1, X2)) 64.15/17.39 tail(mark(X)) -> mark(tail(X)) 64.15/17.39 take(mark(X1), X2) -> mark(take(X1, X2)) 64.15/17.39 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.15/17.39 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.15/17.39 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.15/17.39 proper(tt) -> ok(tt) 64.15/17.39 proper(nil) -> ok(nil) 64.15/17.39 proper(0) -> ok(0) 64.15/17.39 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.15/17.39 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.15/17.39 isNatural(ok(X)) -> ok(isNatural(X)) 64.15/17.39 U103(ok(X)) -> ok(U103(X)) 64.15/17.39 isLNat(ok(X)) -> ok(isLNat(X)) 64.15/17.39 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.15/17.39 snd(ok(X)) -> ok(snd(X)) 64.15/17.39 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.15/17.39 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.15/17.39 U112(ok(X)) -> ok(U112(X)) 64.15/17.39 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.15/17.39 U122(ok(X)) -> ok(U122(X)) 64.15/17.39 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.15/17.39 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.15/17.39 U133(ok(X)) -> ok(U133(X)) 64.15/17.39 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.15/17.39 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.15/17.39 U143(ok(X)) -> ok(U143(X)) 64.15/17.39 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.15/17.39 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.15/17.39 U153(ok(X)) -> ok(U153(X)) 64.15/17.39 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.15/17.39 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.15/17.39 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.15/17.39 s(ok(X)) -> ok(s(X)) 64.15/17.39 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.15/17.39 head(ok(X)) -> ok(head(X)) 64.15/17.39 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.15/17.39 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.15/17.39 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.15/17.39 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.15/17.39 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.15/17.39 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.15/17.39 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.15/17.39 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.15/17.39 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.15/17.39 fst(ok(X)) -> ok(fst(X)) 64.15/17.39 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.15/17.39 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.15/17.39 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.15/17.39 U43(ok(X)) -> ok(U43(X)) 64.15/17.39 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.15/17.39 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.15/17.39 U53(ok(X)) -> ok(U53(X)) 64.15/17.39 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.15/17.39 U62(ok(X)) -> ok(U62(X)) 64.15/17.39 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.15/17.39 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.15/17.39 U72(ok(X)) -> ok(U72(X)) 64.15/17.39 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.15/17.39 U82(ok(X)) -> ok(U82(X)) 64.15/17.39 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.15/17.39 U92(ok(X)) -> ok(U92(X)) 64.15/17.39 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.15/17.39 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.15/17.39 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.15/17.39 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.15/17.39 tail(ok(X)) -> ok(tail(X)) 64.15/17.39 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.15/17.39 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.15/17.39 top(mark(X)) -> top(proper(X)) 64.15/17.39 top(ok(X)) -> top(active(X)) 64.15/17.39 64.15/17.39 S is empty. 64.15/17.39 Rewrite Strategy: FULL 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (3) RcToIrcProof (BOTH BOUNDS(ID, ID)) 64.15/17.39 Converted rc-obligation to irc-obligation. 64.15/17.39 64.15/17.39 As the TRS is a non-duplicating overlay system, we have rc = irc. 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (4) 64.15/17.39 Obligation: 64.15/17.39 The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). 64.15/17.39 64.15/17.39 64.15/17.39 The TRS R consists of the following rules: 64.15/17.39 64.15/17.39 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.15/17.39 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.15/17.39 U103(mark(X)) -> mark(U103(X)) 64.15/17.39 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.15/17.39 snd(mark(X)) -> mark(snd(X)) 64.15/17.39 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.15/17.39 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.15/17.39 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.15/17.39 U112(mark(X)) -> mark(U112(X)) 64.15/17.39 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.15/17.39 U122(mark(X)) -> mark(U122(X)) 64.15/17.39 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.15/17.39 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.15/17.39 U133(mark(X)) -> mark(U133(X)) 64.15/17.39 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.15/17.39 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.15/17.39 U143(mark(X)) -> mark(U143(X)) 64.15/17.39 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.15/17.39 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.15/17.39 U153(mark(X)) -> mark(U153(X)) 64.15/17.39 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.15/17.39 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.15/17.39 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.15/17.39 s(mark(X)) -> mark(s(X)) 64.15/17.39 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.15/17.39 head(mark(X)) -> mark(head(X)) 64.15/17.39 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.15/17.39 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.15/17.39 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.15/17.39 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.15/17.39 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.15/17.39 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.15/17.39 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.15/17.39 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.15/17.39 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.15/17.39 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.15/17.39 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.15/17.39 fst(mark(X)) -> mark(fst(X)) 64.15/17.39 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.15/17.39 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.15/17.39 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.15/17.39 U43(mark(X)) -> mark(U43(X)) 64.15/17.39 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.15/17.39 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.15/17.39 U53(mark(X)) -> mark(U53(X)) 64.15/17.39 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.15/17.39 U62(mark(X)) -> mark(U62(X)) 64.15/17.39 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.15/17.39 U72(mark(X)) -> mark(U72(X)) 64.15/17.39 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.15/17.39 U82(mark(X)) -> mark(U82(X)) 64.15/17.39 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.15/17.39 U92(mark(X)) -> mark(U92(X)) 64.15/17.39 and(mark(X1), X2) -> mark(and(X1, X2)) 64.15/17.39 tail(mark(X)) -> mark(tail(X)) 64.15/17.39 take(mark(X1), X2) -> mark(take(X1, X2)) 64.15/17.39 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.15/17.39 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.15/17.39 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.15/17.39 proper(tt) -> ok(tt) 64.15/17.39 proper(nil) -> ok(nil) 64.15/17.39 proper(0) -> ok(0) 64.15/17.39 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.15/17.39 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.15/17.39 isNatural(ok(X)) -> ok(isNatural(X)) 64.15/17.39 U103(ok(X)) -> ok(U103(X)) 64.15/17.39 isLNat(ok(X)) -> ok(isLNat(X)) 64.15/17.39 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.15/17.39 snd(ok(X)) -> ok(snd(X)) 64.15/17.39 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.15/17.39 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.15/17.39 U112(ok(X)) -> ok(U112(X)) 64.15/17.39 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.15/17.39 U122(ok(X)) -> ok(U122(X)) 64.15/17.39 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.15/17.39 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.15/17.39 U133(ok(X)) -> ok(U133(X)) 64.15/17.39 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.15/17.39 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.15/17.39 U143(ok(X)) -> ok(U143(X)) 64.15/17.39 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.15/17.39 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.15/17.39 U153(ok(X)) -> ok(U153(X)) 64.15/17.39 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.15/17.39 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.15/17.39 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.15/17.39 s(ok(X)) -> ok(s(X)) 64.15/17.39 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.15/17.39 head(ok(X)) -> ok(head(X)) 64.15/17.39 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.15/17.39 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.15/17.39 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.15/17.39 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.15/17.39 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.15/17.39 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.15/17.39 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.15/17.39 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.15/17.39 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.15/17.39 fst(ok(X)) -> ok(fst(X)) 64.15/17.39 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.15/17.39 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.15/17.39 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.15/17.39 U43(ok(X)) -> ok(U43(X)) 64.15/17.39 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.15/17.39 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.15/17.39 U53(ok(X)) -> ok(U53(X)) 64.15/17.39 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.15/17.39 U62(ok(X)) -> ok(U62(X)) 64.15/17.39 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.15/17.39 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.15/17.39 U72(ok(X)) -> ok(U72(X)) 64.15/17.39 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.15/17.39 U82(ok(X)) -> ok(U82(X)) 64.15/17.39 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.15/17.39 U92(ok(X)) -> ok(U92(X)) 64.15/17.39 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.15/17.39 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.15/17.39 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.15/17.39 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.15/17.39 tail(ok(X)) -> ok(tail(X)) 64.15/17.39 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.15/17.39 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.15/17.39 top(mark(X)) -> top(proper(X)) 64.15/17.39 top(ok(X)) -> top(active(X)) 64.15/17.39 64.15/17.39 S is empty. 64.15/17.39 Rewrite Strategy: INNERMOST 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (5) CpxTrsToCdtProof (UPPER BOUND(ID)) 64.15/17.39 Converted Cpx (relative) TRS to CDT 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (6) 64.15/17.39 Obligation: 64.15/17.39 Complexity Dependency Tuples Problem 64.15/17.39 64.15/17.39 Rules: 64.15/17.39 U101(mark(z0), z1, z2) -> mark(U101(z0, z1, z2)) 64.15/17.39 U101(ok(z0), ok(z1), ok(z2)) -> ok(U101(z0, z1, z2)) 64.15/17.39 U102(mark(z0), z1) -> mark(U102(z0, z1)) 64.15/17.39 U102(ok(z0), ok(z1)) -> ok(U102(z0, z1)) 64.15/17.39 U103(mark(z0)) -> mark(U103(z0)) 64.15/17.39 U103(ok(z0)) -> ok(U103(z0)) 64.15/17.39 U11(mark(z0), z1, z2) -> mark(U11(z0, z1, z2)) 64.15/17.39 U11(ok(z0), ok(z1), ok(z2)) -> ok(U11(z0, z1, z2)) 64.15/17.39 snd(mark(z0)) -> mark(snd(z0)) 64.15/17.39 snd(ok(z0)) -> ok(snd(z0)) 64.15/17.39 splitAt(mark(z0), z1) -> mark(splitAt(z0, z1)) 64.15/17.39 splitAt(z0, mark(z1)) -> mark(splitAt(z0, z1)) 64.15/17.39 splitAt(ok(z0), ok(z1)) -> ok(splitAt(z0, z1)) 64.15/17.39 U111(mark(z0), z1) -> mark(U111(z0, z1)) 64.15/17.39 U111(ok(z0), ok(z1)) -> ok(U111(z0, z1)) 64.15/17.39 U112(mark(z0)) -> mark(U112(z0)) 64.15/17.39 U112(ok(z0)) -> ok(U112(z0)) 64.15/17.39 U121(mark(z0), z1) -> mark(U121(z0, z1)) 64.15/17.39 U121(ok(z0), ok(z1)) -> ok(U121(z0, z1)) 64.15/17.39 U122(mark(z0)) -> mark(U122(z0)) 64.15/17.39 U122(ok(z0)) -> ok(U122(z0)) 64.15/17.39 U131(mark(z0), z1, z2) -> mark(U131(z0, z1, z2)) 64.15/17.39 U131(ok(z0), ok(z1), ok(z2)) -> ok(U131(z0, z1, z2)) 64.15/17.39 U132(mark(z0), z1) -> mark(U132(z0, z1)) 64.15/17.39 U132(ok(z0), ok(z1)) -> ok(U132(z0, z1)) 64.15/17.39 U133(mark(z0)) -> mark(U133(z0)) 64.15/17.39 U133(ok(z0)) -> ok(U133(z0)) 64.15/17.39 U141(mark(z0), z1, z2) -> mark(U141(z0, z1, z2)) 64.15/17.39 U141(ok(z0), ok(z1), ok(z2)) -> ok(U141(z0, z1, z2)) 64.15/17.39 U142(mark(z0), z1) -> mark(U142(z0, z1)) 64.15/17.39 U142(ok(z0), ok(z1)) -> ok(U142(z0, z1)) 64.15/17.39 U143(mark(z0)) -> mark(U143(z0)) 64.15/17.39 U143(ok(z0)) -> ok(U143(z0)) 64.15/17.39 U151(mark(z0), z1, z2) -> mark(U151(z0, z1, z2)) 64.15/17.39 U151(ok(z0), ok(z1), ok(z2)) -> ok(U151(z0, z1, z2)) 64.15/17.39 U152(mark(z0), z1) -> mark(U152(z0, z1)) 64.15/17.39 U152(ok(z0), ok(z1)) -> ok(U152(z0, z1)) 64.15/17.39 U153(mark(z0)) -> mark(U153(z0)) 64.15/17.39 U153(ok(z0)) -> ok(U153(z0)) 64.15/17.39 U161(mark(z0), z1) -> mark(U161(z0, z1)) 64.15/17.39 U161(ok(z0), ok(z1)) -> ok(U161(z0, z1)) 64.15/17.39 cons(mark(z0), z1) -> mark(cons(z0, z1)) 64.15/17.39 cons(ok(z0), ok(z1)) -> ok(cons(z0, z1)) 64.15/17.39 natsFrom(mark(z0)) -> mark(natsFrom(z0)) 64.15/17.39 natsFrom(ok(z0)) -> ok(natsFrom(z0)) 64.15/17.39 s(mark(z0)) -> mark(s(z0)) 64.15/17.39 s(ok(z0)) -> ok(s(z0)) 64.15/17.39 U171(mark(z0), z1, z2) -> mark(U171(z0, z1, z2)) 64.15/17.39 U171(ok(z0), ok(z1), ok(z2)) -> ok(U171(z0, z1, z2)) 64.15/17.39 head(mark(z0)) -> mark(head(z0)) 64.15/17.39 head(ok(z0)) -> ok(head(z0)) 64.15/17.39 afterNth(mark(z0), z1) -> mark(afterNth(z0, z1)) 64.15/17.39 afterNth(z0, mark(z1)) -> mark(afterNth(z0, z1)) 64.15/17.39 afterNth(ok(z0), ok(z1)) -> ok(afterNth(z0, z1)) 64.15/17.39 U181(mark(z0), z1) -> mark(U181(z0, z1)) 64.15/17.39 U181(ok(z0), ok(z1)) -> ok(U181(z0, z1)) 64.15/17.39 U191(mark(z0), z1) -> mark(U191(z0, z1)) 64.15/17.39 U191(ok(z0), ok(z1)) -> ok(U191(z0, z1)) 64.15/17.39 pair(mark(z0), z1) -> mark(pair(z0, z1)) 64.15/17.39 pair(z0, mark(z1)) -> mark(pair(z0, z1)) 64.15/17.39 pair(ok(z0), ok(z1)) -> ok(pair(z0, z1)) 64.15/17.39 U201(mark(z0), z1, z2, z3) -> mark(U201(z0, z1, z2, z3)) 64.15/17.39 U201(ok(z0), ok(z1), ok(z2), ok(z3)) -> ok(U201(z0, z1, z2, z3)) 64.15/17.39 U202(mark(z0), z1) -> mark(U202(z0, z1)) 64.15/17.39 U202(ok(z0), ok(z1)) -> ok(U202(z0, z1)) 64.15/17.39 U21(mark(z0), z1) -> mark(U21(z0, z1)) 64.15/17.39 U21(ok(z0), ok(z1)) -> ok(U21(z0, z1)) 64.15/17.39 U211(mark(z0), z1) -> mark(U211(z0, z1)) 64.15/17.39 U211(ok(z0), ok(z1)) -> ok(U211(z0, z1)) 64.15/17.39 U221(mark(z0), z1, z2) -> mark(U221(z0, z1, z2)) 64.15/17.39 U221(ok(z0), ok(z1), ok(z2)) -> ok(U221(z0, z1, z2)) 64.15/17.39 fst(mark(z0)) -> mark(fst(z0)) 64.15/17.39 fst(ok(z0)) -> ok(fst(z0)) 64.15/17.39 U31(mark(z0), z1) -> mark(U31(z0, z1)) 64.15/17.39 U31(ok(z0), ok(z1)) -> ok(U31(z0, z1)) 64.15/17.39 U41(mark(z0), z1, z2) -> mark(U41(z0, z1, z2)) 64.15/17.39 U41(ok(z0), ok(z1), ok(z2)) -> ok(U41(z0, z1, z2)) 64.15/17.39 U42(mark(z0), z1) -> mark(U42(z0, z1)) 64.15/17.39 U42(ok(z0), ok(z1)) -> ok(U42(z0, z1)) 64.15/17.39 U43(mark(z0)) -> mark(U43(z0)) 64.15/17.39 U43(ok(z0)) -> ok(U43(z0)) 64.15/17.39 U51(mark(z0), z1, z2) -> mark(U51(z0, z1, z2)) 64.15/17.39 U51(ok(z0), ok(z1), ok(z2)) -> ok(U51(z0, z1, z2)) 64.15/17.39 U52(mark(z0), z1) -> mark(U52(z0, z1)) 64.15/17.39 U52(ok(z0), ok(z1)) -> ok(U52(z0, z1)) 64.15/17.39 U53(mark(z0)) -> mark(U53(z0)) 64.15/17.39 U53(ok(z0)) -> ok(U53(z0)) 64.15/17.39 U61(mark(z0), z1) -> mark(U61(z0, z1)) 64.15/17.39 U61(ok(z0), ok(z1)) -> ok(U61(z0, z1)) 64.15/17.39 U62(mark(z0)) -> mark(U62(z0)) 64.15/17.39 U62(ok(z0)) -> ok(U62(z0)) 64.15/17.39 U71(mark(z0), z1) -> mark(U71(z0, z1)) 64.15/17.39 U71(ok(z0), ok(z1)) -> ok(U71(z0, z1)) 64.15/17.39 U72(mark(z0)) -> mark(U72(z0)) 64.15/17.39 U72(ok(z0)) -> ok(U72(z0)) 64.15/17.39 U81(mark(z0), z1) -> mark(U81(z0, z1)) 64.15/17.39 U81(ok(z0), ok(z1)) -> ok(U81(z0, z1)) 64.15/17.39 U82(mark(z0)) -> mark(U82(z0)) 64.15/17.39 U82(ok(z0)) -> ok(U82(z0)) 64.15/17.39 U91(mark(z0), z1) -> mark(U91(z0, z1)) 64.15/17.39 U91(ok(z0), ok(z1)) -> ok(U91(z0, z1)) 64.15/17.39 U92(mark(z0)) -> mark(U92(z0)) 64.15/17.39 U92(ok(z0)) -> ok(U92(z0)) 64.15/17.39 and(mark(z0), z1) -> mark(and(z0, z1)) 64.15/17.39 and(ok(z0), ok(z1)) -> ok(and(z0, z1)) 64.15/17.39 tail(mark(z0)) -> mark(tail(z0)) 64.15/17.39 tail(ok(z0)) -> ok(tail(z0)) 64.15/17.39 take(mark(z0), z1) -> mark(take(z0, z1)) 64.15/17.39 take(z0, mark(z1)) -> mark(take(z0, z1)) 64.15/17.39 take(ok(z0), ok(z1)) -> ok(take(z0, z1)) 64.15/17.39 sel(mark(z0), z1) -> mark(sel(z0, z1)) 64.15/17.39 sel(z0, mark(z1)) -> mark(sel(z0, z1)) 64.15/17.39 sel(ok(z0), ok(z1)) -> ok(sel(z0, z1)) 64.15/17.39 proper(tt) -> ok(tt) 64.15/17.39 proper(nil) -> ok(nil) 64.15/17.39 proper(0) -> ok(0) 64.15/17.39 isNatural(ok(z0)) -> ok(isNatural(z0)) 64.15/17.39 isLNat(ok(z0)) -> ok(isLNat(z0)) 64.15/17.39 isPLNat(ok(z0)) -> ok(isPLNat(z0)) 64.15/17.39 isNaturalKind(ok(z0)) -> ok(isNaturalKind(z0)) 64.15/17.39 isLNatKind(ok(z0)) -> ok(isLNatKind(z0)) 64.15/17.39 isPLNatKind(ok(z0)) -> ok(isPLNatKind(z0)) 64.15/17.39 top(mark(z0)) -> top(proper(z0)) 64.15/17.39 top(ok(z0)) -> top(active(z0)) 64.15/17.39 Tuples: 64.15/17.39 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.15/17.39 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.15/17.39 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.15/17.39 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.15/17.39 U103'(mark(z0)) -> c4(U103'(z0)) 64.15/17.39 U103'(ok(z0)) -> c5(U103'(z0)) 64.15/17.39 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.15/17.39 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.15/17.39 SND(mark(z0)) -> c8(SND(z0)) 64.15/17.39 SND(ok(z0)) -> c9(SND(z0)) 64.15/17.39 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.15/17.39 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.15/17.39 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.15/17.39 U112'(mark(z0)) -> c15(U112'(z0)) 64.15/17.39 U112'(ok(z0)) -> c16(U112'(z0)) 64.15/17.39 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.15/17.39 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.15/17.39 U122'(mark(z0)) -> c19(U122'(z0)) 64.15/17.39 U122'(ok(z0)) -> c20(U122'(z0)) 64.15/17.39 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.15/17.39 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.15/17.39 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.15/17.39 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.15/17.39 U133'(mark(z0)) -> c25(U133'(z0)) 64.15/17.39 U133'(ok(z0)) -> c26(U133'(z0)) 64.15/17.39 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.15/17.39 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.15/17.39 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.15/17.39 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.15/17.39 U143'(mark(z0)) -> c31(U143'(z0)) 64.15/17.39 U143'(ok(z0)) -> c32(U143'(z0)) 64.15/17.39 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.15/17.39 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.15/17.39 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.15/17.39 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.15/17.39 U153'(mark(z0)) -> c37(U153'(z0)) 64.15/17.39 U153'(ok(z0)) -> c38(U153'(z0)) 64.15/17.39 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.15/17.39 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.15/17.39 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.15/17.39 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.15/17.39 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.15/17.39 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.15/17.39 S(mark(z0)) -> c45(S(z0)) 64.15/17.39 S(ok(z0)) -> c46(S(z0)) 64.15/17.39 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.15/17.39 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.15/17.39 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.15/17.39 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.15/17.39 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.15/17.39 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.15/17.39 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.15/17.39 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.15/17.39 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.15/17.39 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.15/17.39 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.15/17.39 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.15/17.39 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.15/17.39 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.15/17.39 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.15/17.39 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.15/17.39 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.15/17.39 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.15/17.39 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.15/17.39 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.15/17.39 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.15/17.39 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.15/17.39 FST(mark(z0)) -> c71(FST(z0)) 64.15/17.39 FST(ok(z0)) -> c72(FST(z0)) 64.15/17.39 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.15/17.39 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.15/17.39 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.15/17.39 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.15/17.39 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.15/17.39 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.15/17.39 U43'(mark(z0)) -> c79(U43'(z0)) 64.15/17.39 U43'(ok(z0)) -> c80(U43'(z0)) 64.15/17.39 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.15/17.39 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.15/17.39 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.15/17.39 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.15/17.39 U53'(mark(z0)) -> c85(U53'(z0)) 64.15/17.39 U53'(ok(z0)) -> c86(U53'(z0)) 64.15/17.39 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.15/17.39 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.15/17.39 U62'(mark(z0)) -> c89(U62'(z0)) 64.15/17.39 U62'(ok(z0)) -> c90(U62'(z0)) 64.15/17.39 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.15/17.39 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.15/17.39 U72'(mark(z0)) -> c93(U72'(z0)) 64.15/17.39 U72'(ok(z0)) -> c94(U72'(z0)) 64.15/17.39 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.15/17.39 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.15/17.39 U82'(mark(z0)) -> c97(U82'(z0)) 64.15/17.39 U82'(ok(z0)) -> c98(U82'(z0)) 64.15/17.39 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.15/17.39 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.15/17.39 U92'(mark(z0)) -> c101(U92'(z0)) 64.15/17.39 U92'(ok(z0)) -> c102(U92'(z0)) 64.15/17.39 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.15/17.39 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.15/17.39 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.15/17.39 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.15/17.39 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.15/17.39 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.15/17.39 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.15/17.39 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.15/17.39 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.15/17.39 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.15/17.39 PROPER(tt) -> c113 64.15/17.39 PROPER(nil) -> c114 64.15/17.39 PROPER(0) -> c115 64.15/17.39 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.15/17.39 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.15/17.39 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.15/17.39 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.15/17.39 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.15/17.39 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.15/17.39 TOP(mark(z0)) -> c122(TOP(proper(z0)), PROPER(z0)) 64.15/17.39 TOP(ok(z0)) -> c123(TOP(active(z0))) 64.15/17.39 S tuples: 64.15/17.39 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.15/17.39 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.15/17.39 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.15/17.39 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.15/17.39 U103'(mark(z0)) -> c4(U103'(z0)) 64.15/17.39 U103'(ok(z0)) -> c5(U103'(z0)) 64.15/17.39 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.15/17.39 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.15/17.39 SND(mark(z0)) -> c8(SND(z0)) 64.15/17.39 SND(ok(z0)) -> c9(SND(z0)) 64.15/17.39 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.15/17.39 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.15/17.39 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.15/17.39 U112'(mark(z0)) -> c15(U112'(z0)) 64.15/17.39 U112'(ok(z0)) -> c16(U112'(z0)) 64.15/17.39 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.15/17.39 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.15/17.39 U122'(mark(z0)) -> c19(U122'(z0)) 64.15/17.39 U122'(ok(z0)) -> c20(U122'(z0)) 64.15/17.39 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.15/17.39 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.15/17.39 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.15/17.39 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.15/17.39 U133'(mark(z0)) -> c25(U133'(z0)) 64.15/17.39 U133'(ok(z0)) -> c26(U133'(z0)) 64.15/17.39 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.15/17.39 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.15/17.39 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.15/17.39 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.15/17.39 U143'(mark(z0)) -> c31(U143'(z0)) 64.15/17.39 U143'(ok(z0)) -> c32(U143'(z0)) 64.15/17.39 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.15/17.39 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.15/17.39 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.15/17.39 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.15/17.39 U153'(mark(z0)) -> c37(U153'(z0)) 64.15/17.39 U153'(ok(z0)) -> c38(U153'(z0)) 64.15/17.39 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.15/17.39 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.15/17.39 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.15/17.39 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.15/17.39 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.15/17.39 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.15/17.39 S(mark(z0)) -> c45(S(z0)) 64.15/17.39 S(ok(z0)) -> c46(S(z0)) 64.15/17.39 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.15/17.39 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.15/17.39 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.15/17.39 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.15/17.39 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.15/17.39 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.15/17.39 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.15/17.39 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.15/17.39 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.15/17.39 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.15/17.39 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.15/17.39 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.15/17.39 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.15/17.39 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.15/17.39 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.15/17.39 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.15/17.39 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.15/17.39 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.15/17.39 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.15/17.39 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.15/17.39 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.15/17.39 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.15/17.39 FST(mark(z0)) -> c71(FST(z0)) 64.15/17.39 FST(ok(z0)) -> c72(FST(z0)) 64.15/17.39 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.15/17.39 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.15/17.39 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.15/17.39 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.15/17.39 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.15/17.39 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.15/17.39 U43'(mark(z0)) -> c79(U43'(z0)) 64.15/17.39 U43'(ok(z0)) -> c80(U43'(z0)) 64.15/17.39 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.15/17.39 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.15/17.39 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.15/17.39 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.15/17.39 U53'(mark(z0)) -> c85(U53'(z0)) 64.15/17.39 U53'(ok(z0)) -> c86(U53'(z0)) 64.15/17.39 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.15/17.39 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.15/17.39 U62'(mark(z0)) -> c89(U62'(z0)) 64.15/17.39 U62'(ok(z0)) -> c90(U62'(z0)) 64.15/17.39 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.15/17.39 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.15/17.39 U72'(mark(z0)) -> c93(U72'(z0)) 64.15/17.39 U72'(ok(z0)) -> c94(U72'(z0)) 64.15/17.39 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.15/17.39 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.15/17.39 U82'(mark(z0)) -> c97(U82'(z0)) 64.15/17.39 U82'(ok(z0)) -> c98(U82'(z0)) 64.15/17.39 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.15/17.39 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.15/17.39 U92'(mark(z0)) -> c101(U92'(z0)) 64.15/17.39 U92'(ok(z0)) -> c102(U92'(z0)) 64.15/17.39 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.15/17.39 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.15/17.39 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.15/17.39 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.15/17.39 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.15/17.39 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.15/17.39 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.15/17.39 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.15/17.39 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.15/17.39 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.15/17.39 PROPER(tt) -> c113 64.15/17.39 PROPER(nil) -> c114 64.15/17.39 PROPER(0) -> c115 64.15/17.39 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.15/17.39 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.15/17.39 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.15/17.39 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.15/17.39 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.15/17.39 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.15/17.39 TOP(mark(z0)) -> c122(TOP(proper(z0)), PROPER(z0)) 64.15/17.39 TOP(ok(z0)) -> c123(TOP(active(z0))) 64.15/17.39 K tuples:none 64.15/17.39 Defined Rule Symbols: U101_3, U102_2, U103_1, U11_3, snd_1, splitAt_2, U111_2, U112_1, U121_2, U122_1, U131_3, U132_2, U133_1, U141_3, U142_2, U143_1, U151_3, U152_2, U153_1, U161_2, cons_2, natsFrom_1, s_1, U171_3, head_1, afterNth_2, U181_2, U191_2, pair_2, U201_4, U202_2, U21_2, U211_2, U221_3, fst_1, U31_2, U41_3, U42_2, U43_1, U51_3, U52_2, U53_1, U61_2, U62_1, U71_2, U72_1, U81_2, U82_1, U91_2, U92_1, and_2, tail_1, take_2, sel_2, proper_1, isNatural_1, isLNat_1, isPLNat_1, isNaturalKind_1, isLNatKind_1, isPLNatKind_1, top_1 64.15/17.39 64.15/17.39 Defined Pair Symbols: U101'_3, U102'_2, U103'_1, U11'_3, SND_1, SPLITAT_2, U111'_2, U112'_1, U121'_2, U122'_1, U131'_3, U132'_2, U133'_1, U141'_3, U142'_2, U143'_1, U151'_3, U152'_2, U153'_1, U161'_2, CONS_2, NATSFROM_1, S_1, U171'_3, HEAD_1, AFTERNTH_2, U181'_2, U191'_2, PAIR_2, U201'_4, U202'_2, U21'_2, U211'_2, U221'_3, FST_1, U31'_2, U41'_3, U42'_2, U43'_1, U51'_3, U52'_2, U53'_1, U61'_2, U62'_1, U71'_2, U72'_1, U81'_2, U82'_1, U91'_2, U92'_1, AND_2, TAIL_1, TAKE_2, SEL_2, PROPER_1, ISNATURAL_1, ISLNAT_1, ISPLNAT_1, ISNATURALKIND_1, ISLNATKIND_1, ISPLNATKIND_1, TOP_1 64.15/17.39 64.15/17.39 Compound Symbols: c_1, c1_1, c2_1, c3_1, c4_1, c5_1, c6_1, c7_1, c8_1, c9_1, c10_1, c11_1, c12_1, c13_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_1, c20_1, c21_1, c22_1, c23_1, c24_1, c25_1, c26_1, c27_1, c28_1, c29_1, c30_1, c31_1, c32_1, c33_1, c34_1, c35_1, c36_1, c37_1, c38_1, c39_1, c40_1, c41_1, c42_1, c43_1, c44_1, c45_1, c46_1, c47_1, c48_1, c49_1, c50_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c104_1, c105_1, c106_1, c107_1, c108_1, c109_1, c110_1, c111_1, c112_1, c113, c114, c115, c116_1, c117_1, c118_1, c119_1, c120_1, c121_1, c122_2, c123_1 64.15/17.39 64.15/17.39 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) 64.15/17.39 Removed 4 trailing nodes: 64.15/17.39 PROPER(tt) -> c113 64.15/17.39 PROPER(0) -> c115 64.15/17.39 TOP(ok(z0)) -> c123(TOP(active(z0))) 64.15/17.39 PROPER(nil) -> c114 64.15/17.39 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (8) 64.15/17.39 Obligation: 64.15/17.39 Complexity Dependency Tuples Problem 64.15/17.39 64.15/17.39 Rules: 64.15/17.39 U101(mark(z0), z1, z2) -> mark(U101(z0, z1, z2)) 64.15/17.39 U101(ok(z0), ok(z1), ok(z2)) -> ok(U101(z0, z1, z2)) 64.15/17.39 U102(mark(z0), z1) -> mark(U102(z0, z1)) 64.15/17.39 U102(ok(z0), ok(z1)) -> ok(U102(z0, z1)) 64.15/17.39 U103(mark(z0)) -> mark(U103(z0)) 64.15/17.39 U103(ok(z0)) -> ok(U103(z0)) 64.15/17.39 U11(mark(z0), z1, z2) -> mark(U11(z0, z1, z2)) 64.15/17.39 U11(ok(z0), ok(z1), ok(z2)) -> ok(U11(z0, z1, z2)) 64.15/17.39 snd(mark(z0)) -> mark(snd(z0)) 64.15/17.39 snd(ok(z0)) -> ok(snd(z0)) 64.15/17.39 splitAt(mark(z0), z1) -> mark(splitAt(z0, z1)) 64.15/17.39 splitAt(z0, mark(z1)) -> mark(splitAt(z0, z1)) 64.15/17.39 splitAt(ok(z0), ok(z1)) -> ok(splitAt(z0, z1)) 64.15/17.39 U111(mark(z0), z1) -> mark(U111(z0, z1)) 64.15/17.39 U111(ok(z0), ok(z1)) -> ok(U111(z0, z1)) 64.15/17.39 U112(mark(z0)) -> mark(U112(z0)) 64.15/17.39 U112(ok(z0)) -> ok(U112(z0)) 64.15/17.39 U121(mark(z0), z1) -> mark(U121(z0, z1)) 64.15/17.39 U121(ok(z0), ok(z1)) -> ok(U121(z0, z1)) 64.15/17.39 U122(mark(z0)) -> mark(U122(z0)) 64.15/17.39 U122(ok(z0)) -> ok(U122(z0)) 64.15/17.39 U131(mark(z0), z1, z2) -> mark(U131(z0, z1, z2)) 64.15/17.39 U131(ok(z0), ok(z1), ok(z2)) -> ok(U131(z0, z1, z2)) 64.15/17.39 U132(mark(z0), z1) -> mark(U132(z0, z1)) 64.15/17.39 U132(ok(z0), ok(z1)) -> ok(U132(z0, z1)) 64.15/17.39 U133(mark(z0)) -> mark(U133(z0)) 64.15/17.39 U133(ok(z0)) -> ok(U133(z0)) 64.15/17.39 U141(mark(z0), z1, z2) -> mark(U141(z0, z1, z2)) 64.15/17.39 U141(ok(z0), ok(z1), ok(z2)) -> ok(U141(z0, z1, z2)) 64.15/17.39 U142(mark(z0), z1) -> mark(U142(z0, z1)) 64.15/17.39 U142(ok(z0), ok(z1)) -> ok(U142(z0, z1)) 64.15/17.39 U143(mark(z0)) -> mark(U143(z0)) 64.15/17.39 U143(ok(z0)) -> ok(U143(z0)) 64.15/17.39 U151(mark(z0), z1, z2) -> mark(U151(z0, z1, z2)) 64.15/17.39 U151(ok(z0), ok(z1), ok(z2)) -> ok(U151(z0, z1, z2)) 64.15/17.39 U152(mark(z0), z1) -> mark(U152(z0, z1)) 64.15/17.39 U152(ok(z0), ok(z1)) -> ok(U152(z0, z1)) 64.15/17.39 U153(mark(z0)) -> mark(U153(z0)) 64.15/17.39 U153(ok(z0)) -> ok(U153(z0)) 64.15/17.39 U161(mark(z0), z1) -> mark(U161(z0, z1)) 64.15/17.39 U161(ok(z0), ok(z1)) -> ok(U161(z0, z1)) 64.15/17.39 cons(mark(z0), z1) -> mark(cons(z0, z1)) 64.15/17.39 cons(ok(z0), ok(z1)) -> ok(cons(z0, z1)) 64.15/17.39 natsFrom(mark(z0)) -> mark(natsFrom(z0)) 64.15/17.39 natsFrom(ok(z0)) -> ok(natsFrom(z0)) 64.15/17.39 s(mark(z0)) -> mark(s(z0)) 64.15/17.39 s(ok(z0)) -> ok(s(z0)) 64.15/17.39 U171(mark(z0), z1, z2) -> mark(U171(z0, z1, z2)) 64.15/17.39 U171(ok(z0), ok(z1), ok(z2)) -> ok(U171(z0, z1, z2)) 64.15/17.39 head(mark(z0)) -> mark(head(z0)) 64.15/17.39 head(ok(z0)) -> ok(head(z0)) 64.15/17.39 afterNth(mark(z0), z1) -> mark(afterNth(z0, z1)) 64.15/17.39 afterNth(z0, mark(z1)) -> mark(afterNth(z0, z1)) 64.15/17.39 afterNth(ok(z0), ok(z1)) -> ok(afterNth(z0, z1)) 64.15/17.39 U181(mark(z0), z1) -> mark(U181(z0, z1)) 64.15/17.39 U181(ok(z0), ok(z1)) -> ok(U181(z0, z1)) 64.15/17.39 U191(mark(z0), z1) -> mark(U191(z0, z1)) 64.15/17.39 U191(ok(z0), ok(z1)) -> ok(U191(z0, z1)) 64.15/17.39 pair(mark(z0), z1) -> mark(pair(z0, z1)) 64.15/17.39 pair(z0, mark(z1)) -> mark(pair(z0, z1)) 64.15/17.39 pair(ok(z0), ok(z1)) -> ok(pair(z0, z1)) 64.15/17.39 U201(mark(z0), z1, z2, z3) -> mark(U201(z0, z1, z2, z3)) 64.15/17.39 U201(ok(z0), ok(z1), ok(z2), ok(z3)) -> ok(U201(z0, z1, z2, z3)) 64.15/17.39 U202(mark(z0), z1) -> mark(U202(z0, z1)) 64.15/17.39 U202(ok(z0), ok(z1)) -> ok(U202(z0, z1)) 64.15/17.39 U21(mark(z0), z1) -> mark(U21(z0, z1)) 64.15/17.39 U21(ok(z0), ok(z1)) -> ok(U21(z0, z1)) 64.15/17.39 U211(mark(z0), z1) -> mark(U211(z0, z1)) 64.15/17.39 U211(ok(z0), ok(z1)) -> ok(U211(z0, z1)) 64.15/17.39 U221(mark(z0), z1, z2) -> mark(U221(z0, z1, z2)) 64.15/17.39 U221(ok(z0), ok(z1), ok(z2)) -> ok(U221(z0, z1, z2)) 64.15/17.39 fst(mark(z0)) -> mark(fst(z0)) 64.15/17.39 fst(ok(z0)) -> ok(fst(z0)) 64.15/17.39 U31(mark(z0), z1) -> mark(U31(z0, z1)) 64.15/17.39 U31(ok(z0), ok(z1)) -> ok(U31(z0, z1)) 64.15/17.39 U41(mark(z0), z1, z2) -> mark(U41(z0, z1, z2)) 64.15/17.39 U41(ok(z0), ok(z1), ok(z2)) -> ok(U41(z0, z1, z2)) 64.15/17.39 U42(mark(z0), z1) -> mark(U42(z0, z1)) 64.15/17.39 U42(ok(z0), ok(z1)) -> ok(U42(z0, z1)) 64.15/17.39 U43(mark(z0)) -> mark(U43(z0)) 64.15/17.39 U43(ok(z0)) -> ok(U43(z0)) 64.15/17.39 U51(mark(z0), z1, z2) -> mark(U51(z0, z1, z2)) 64.15/17.39 U51(ok(z0), ok(z1), ok(z2)) -> ok(U51(z0, z1, z2)) 64.15/17.39 U52(mark(z0), z1) -> mark(U52(z0, z1)) 64.15/17.39 U52(ok(z0), ok(z1)) -> ok(U52(z0, z1)) 64.15/17.39 U53(mark(z0)) -> mark(U53(z0)) 64.15/17.39 U53(ok(z0)) -> ok(U53(z0)) 64.15/17.39 U61(mark(z0), z1) -> mark(U61(z0, z1)) 64.15/17.39 U61(ok(z0), ok(z1)) -> ok(U61(z0, z1)) 64.15/17.39 U62(mark(z0)) -> mark(U62(z0)) 64.15/17.39 U62(ok(z0)) -> ok(U62(z0)) 64.15/17.39 U71(mark(z0), z1) -> mark(U71(z0, z1)) 64.15/17.39 U71(ok(z0), ok(z1)) -> ok(U71(z0, z1)) 64.15/17.39 U72(mark(z0)) -> mark(U72(z0)) 64.15/17.39 U72(ok(z0)) -> ok(U72(z0)) 64.15/17.39 U81(mark(z0), z1) -> mark(U81(z0, z1)) 64.15/17.39 U81(ok(z0), ok(z1)) -> ok(U81(z0, z1)) 64.15/17.39 U82(mark(z0)) -> mark(U82(z0)) 64.15/17.39 U82(ok(z0)) -> ok(U82(z0)) 64.15/17.39 U91(mark(z0), z1) -> mark(U91(z0, z1)) 64.15/17.39 U91(ok(z0), ok(z1)) -> ok(U91(z0, z1)) 64.15/17.39 U92(mark(z0)) -> mark(U92(z0)) 64.15/17.39 U92(ok(z0)) -> ok(U92(z0)) 64.15/17.39 and(mark(z0), z1) -> mark(and(z0, z1)) 64.15/17.39 and(ok(z0), ok(z1)) -> ok(and(z0, z1)) 64.15/17.39 tail(mark(z0)) -> mark(tail(z0)) 64.15/17.39 tail(ok(z0)) -> ok(tail(z0)) 64.15/17.39 take(mark(z0), z1) -> mark(take(z0, z1)) 64.15/17.39 take(z0, mark(z1)) -> mark(take(z0, z1)) 64.15/17.39 take(ok(z0), ok(z1)) -> ok(take(z0, z1)) 64.15/17.39 sel(mark(z0), z1) -> mark(sel(z0, z1)) 64.15/17.39 sel(z0, mark(z1)) -> mark(sel(z0, z1)) 64.15/17.39 sel(ok(z0), ok(z1)) -> ok(sel(z0, z1)) 64.15/17.39 proper(tt) -> ok(tt) 64.15/17.39 proper(nil) -> ok(nil) 64.15/17.39 proper(0) -> ok(0) 64.15/17.39 isNatural(ok(z0)) -> ok(isNatural(z0)) 64.15/17.39 isLNat(ok(z0)) -> ok(isLNat(z0)) 64.15/17.39 isPLNat(ok(z0)) -> ok(isPLNat(z0)) 64.15/17.39 isNaturalKind(ok(z0)) -> ok(isNaturalKind(z0)) 64.15/17.39 isLNatKind(ok(z0)) -> ok(isLNatKind(z0)) 64.15/17.39 isPLNatKind(ok(z0)) -> ok(isPLNatKind(z0)) 64.15/17.39 top(mark(z0)) -> top(proper(z0)) 64.15/17.39 top(ok(z0)) -> top(active(z0)) 64.15/17.39 Tuples: 64.15/17.39 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.15/17.39 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.15/17.39 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.15/17.39 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.15/17.39 U103'(mark(z0)) -> c4(U103'(z0)) 64.15/17.39 U103'(ok(z0)) -> c5(U103'(z0)) 64.15/17.39 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.15/17.39 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.15/17.39 SND(mark(z0)) -> c8(SND(z0)) 64.15/17.39 SND(ok(z0)) -> c9(SND(z0)) 64.15/17.39 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.15/17.39 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.15/17.39 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.15/17.39 U112'(mark(z0)) -> c15(U112'(z0)) 64.15/17.39 U112'(ok(z0)) -> c16(U112'(z0)) 64.15/17.39 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.15/17.39 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.15/17.39 U122'(mark(z0)) -> c19(U122'(z0)) 64.15/17.39 U122'(ok(z0)) -> c20(U122'(z0)) 64.15/17.39 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.15/17.39 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.15/17.39 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.15/17.39 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.15/17.39 U133'(mark(z0)) -> c25(U133'(z0)) 64.15/17.39 U133'(ok(z0)) -> c26(U133'(z0)) 64.15/17.39 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.15/17.39 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.15/17.39 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.15/17.39 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.15/17.39 U143'(mark(z0)) -> c31(U143'(z0)) 64.15/17.39 U143'(ok(z0)) -> c32(U143'(z0)) 64.15/17.39 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.15/17.39 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.15/17.39 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.15/17.39 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.15/17.39 U153'(mark(z0)) -> c37(U153'(z0)) 64.15/17.39 U153'(ok(z0)) -> c38(U153'(z0)) 64.15/17.39 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.15/17.39 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.15/17.39 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.15/17.39 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.15/17.39 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.15/17.39 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.15/17.39 S(mark(z0)) -> c45(S(z0)) 64.15/17.39 S(ok(z0)) -> c46(S(z0)) 64.15/17.39 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.15/17.39 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.15/17.39 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.15/17.39 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.15/17.39 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.15/17.39 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.15/17.39 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.15/17.39 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.15/17.39 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.15/17.39 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.15/17.39 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.15/17.39 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.15/17.39 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.15/17.39 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.15/17.39 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.15/17.39 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.15/17.39 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.15/17.39 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.15/17.39 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.15/17.39 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.15/17.39 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.15/17.39 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.15/17.39 FST(mark(z0)) -> c71(FST(z0)) 64.15/17.39 FST(ok(z0)) -> c72(FST(z0)) 64.15/17.39 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.15/17.39 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.15/17.39 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.15/17.39 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.15/17.39 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.15/17.39 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.15/17.39 U43'(mark(z0)) -> c79(U43'(z0)) 64.15/17.39 U43'(ok(z0)) -> c80(U43'(z0)) 64.15/17.39 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.15/17.39 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.15/17.39 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.15/17.39 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.15/17.39 U53'(mark(z0)) -> c85(U53'(z0)) 64.15/17.39 U53'(ok(z0)) -> c86(U53'(z0)) 64.15/17.39 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.15/17.39 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.15/17.39 U62'(mark(z0)) -> c89(U62'(z0)) 64.15/17.39 U62'(ok(z0)) -> c90(U62'(z0)) 64.15/17.39 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.15/17.39 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.15/17.39 U72'(mark(z0)) -> c93(U72'(z0)) 64.15/17.39 U72'(ok(z0)) -> c94(U72'(z0)) 64.15/17.39 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.15/17.39 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.15/17.39 U82'(mark(z0)) -> c97(U82'(z0)) 64.15/17.39 U82'(ok(z0)) -> c98(U82'(z0)) 64.15/17.39 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.15/17.39 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.15/17.39 U92'(mark(z0)) -> c101(U92'(z0)) 64.15/17.39 U92'(ok(z0)) -> c102(U92'(z0)) 64.15/17.39 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.15/17.39 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.15/17.39 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.15/17.39 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.15/17.39 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.15/17.39 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.15/17.39 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.15/17.39 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.15/17.39 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.15/17.39 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.15/17.39 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.15/17.39 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.15/17.39 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.15/17.39 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.15/17.39 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.15/17.39 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.15/17.39 TOP(mark(z0)) -> c122(TOP(proper(z0)), PROPER(z0)) 64.15/17.39 S tuples: 64.15/17.39 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.15/17.39 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.15/17.39 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.15/17.39 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.15/17.39 U103'(mark(z0)) -> c4(U103'(z0)) 64.15/17.39 U103'(ok(z0)) -> c5(U103'(z0)) 64.15/17.39 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.15/17.39 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.15/17.39 SND(mark(z0)) -> c8(SND(z0)) 64.15/17.39 SND(ok(z0)) -> c9(SND(z0)) 64.15/17.39 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.15/17.39 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.15/17.39 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.15/17.39 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.15/17.39 U112'(mark(z0)) -> c15(U112'(z0)) 64.15/17.39 U112'(ok(z0)) -> c16(U112'(z0)) 64.15/17.39 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.15/17.39 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.15/17.39 U122'(mark(z0)) -> c19(U122'(z0)) 64.15/17.39 U122'(ok(z0)) -> c20(U122'(z0)) 64.15/17.39 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.15/17.39 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.15/17.39 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.15/17.39 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.15/17.39 U133'(mark(z0)) -> c25(U133'(z0)) 64.15/17.39 U133'(ok(z0)) -> c26(U133'(z0)) 64.15/17.39 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.15/17.39 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.15/17.39 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.15/17.39 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.15/17.39 U143'(mark(z0)) -> c31(U143'(z0)) 64.15/17.39 U143'(ok(z0)) -> c32(U143'(z0)) 64.15/17.39 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.15/17.39 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.15/17.39 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.15/17.39 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.15/17.39 U153'(mark(z0)) -> c37(U153'(z0)) 64.15/17.39 U153'(ok(z0)) -> c38(U153'(z0)) 64.15/17.39 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.15/17.39 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.15/17.39 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.15/17.39 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.15/17.39 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.15/17.39 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.15/17.39 S(mark(z0)) -> c45(S(z0)) 64.15/17.39 S(ok(z0)) -> c46(S(z0)) 64.15/17.39 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.15/17.39 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.15/17.39 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.15/17.39 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.15/17.39 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.15/17.39 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.15/17.39 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.15/17.39 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.15/17.39 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.15/17.39 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.15/17.39 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.15/17.39 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.15/17.39 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.15/17.39 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.15/17.39 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.15/17.39 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.15/17.39 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.15/17.39 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.15/17.39 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.15/17.39 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.15/17.39 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.15/17.39 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.15/17.39 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.15/17.39 FST(mark(z0)) -> c71(FST(z0)) 64.15/17.39 FST(ok(z0)) -> c72(FST(z0)) 64.15/17.39 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.15/17.39 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.15/17.39 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.15/17.39 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.15/17.39 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.15/17.39 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.15/17.39 U43'(mark(z0)) -> c79(U43'(z0)) 64.15/17.39 U43'(ok(z0)) -> c80(U43'(z0)) 64.15/17.39 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.15/17.39 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.15/17.39 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.15/17.39 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.15/17.39 U53'(mark(z0)) -> c85(U53'(z0)) 64.15/17.39 U53'(ok(z0)) -> c86(U53'(z0)) 64.15/17.39 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.15/17.39 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.15/17.39 U62'(mark(z0)) -> c89(U62'(z0)) 64.15/17.39 U62'(ok(z0)) -> c90(U62'(z0)) 64.15/17.39 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.15/17.39 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.15/17.39 U72'(mark(z0)) -> c93(U72'(z0)) 64.15/17.39 U72'(ok(z0)) -> c94(U72'(z0)) 64.15/17.39 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.15/17.39 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.15/17.39 U82'(mark(z0)) -> c97(U82'(z0)) 64.15/17.39 U82'(ok(z0)) -> c98(U82'(z0)) 64.15/17.39 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.15/17.39 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.15/17.39 U92'(mark(z0)) -> c101(U92'(z0)) 64.15/17.39 U92'(ok(z0)) -> c102(U92'(z0)) 64.15/17.39 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.15/17.39 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.15/17.39 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.15/17.39 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.15/17.39 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.15/17.39 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.15/17.39 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.15/17.39 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.15/17.39 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.15/17.39 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.15/17.39 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.15/17.39 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.15/17.39 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.15/17.39 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.15/17.39 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.15/17.39 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.15/17.39 TOP(mark(z0)) -> c122(TOP(proper(z0)), PROPER(z0)) 64.15/17.39 K tuples:none 64.15/17.39 Defined Rule Symbols: U101_3, U102_2, U103_1, U11_3, snd_1, splitAt_2, U111_2, U112_1, U121_2, U122_1, U131_3, U132_2, U133_1, U141_3, U142_2, U143_1, U151_3, U152_2, U153_1, U161_2, cons_2, natsFrom_1, s_1, U171_3, head_1, afterNth_2, U181_2, U191_2, pair_2, U201_4, U202_2, U21_2, U211_2, U221_3, fst_1, U31_2, U41_3, U42_2, U43_1, U51_3, U52_2, U53_1, U61_2, U62_1, U71_2, U72_1, U81_2, U82_1, U91_2, U92_1, and_2, tail_1, take_2, sel_2, proper_1, isNatural_1, isLNat_1, isPLNat_1, isNaturalKind_1, isLNatKind_1, isPLNatKind_1, top_1 64.15/17.39 64.15/17.39 Defined Pair Symbols: U101'_3, U102'_2, U103'_1, U11'_3, SND_1, SPLITAT_2, U111'_2, U112'_1, U121'_2, U122'_1, U131'_3, U132'_2, U133'_1, U141'_3, U142'_2, U143'_1, U151'_3, U152'_2, U153'_1, U161'_2, CONS_2, NATSFROM_1, S_1, U171'_3, HEAD_1, AFTERNTH_2, U181'_2, U191'_2, PAIR_2, U201'_4, U202'_2, U21'_2, U211'_2, U221'_3, FST_1, U31'_2, U41'_3, U42'_2, U43'_1, U51'_3, U52'_2, U53'_1, U61'_2, U62'_1, U71'_2, U72'_1, U81'_2, U82'_1, U91'_2, U92'_1, AND_2, TAIL_1, TAKE_2, SEL_2, ISNATURAL_1, ISLNAT_1, ISPLNAT_1, ISNATURALKIND_1, ISLNATKIND_1, ISPLNATKIND_1, TOP_1 64.15/17.39 64.15/17.39 Compound Symbols: c_1, c1_1, c2_1, c3_1, c4_1, c5_1, c6_1, c7_1, c8_1, c9_1, c10_1, c11_1, c12_1, c13_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_1, c20_1, c21_1, c22_1, c23_1, c24_1, c25_1, c26_1, c27_1, c28_1, c29_1, c30_1, c31_1, c32_1, c33_1, c34_1, c35_1, c36_1, c37_1, c38_1, c39_1, c40_1, c41_1, c42_1, c43_1, c44_1, c45_1, c46_1, c47_1, c48_1, c49_1, c50_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c104_1, c105_1, c106_1, c107_1, c108_1, c109_1, c110_1, c111_1, c112_1, c116_1, c117_1, c118_1, c119_1, c120_1, c121_1, c122_2 64.15/17.39 64.15/17.39 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (9) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) 64.15/17.39 Removed 1 trailing tuple parts 64.15/17.39 ---------------------------------------- 64.15/17.39 64.15/17.39 (10) 64.15/17.39 Obligation: 64.15/17.39 Complexity Dependency Tuples Problem 64.15/17.39 64.15/17.39 Rules: 64.15/17.39 U101(mark(z0), z1, z2) -> mark(U101(z0, z1, z2)) 64.15/17.39 U101(ok(z0), ok(z1), ok(z2)) -> ok(U101(z0, z1, z2)) 64.15/17.39 U102(mark(z0), z1) -> mark(U102(z0, z1)) 64.15/17.39 U102(ok(z0), ok(z1)) -> ok(U102(z0, z1)) 64.15/17.39 U103(mark(z0)) -> mark(U103(z0)) 64.15/17.39 U103(ok(z0)) -> ok(U103(z0)) 64.15/17.39 U11(mark(z0), z1, z2) -> mark(U11(z0, z1, z2)) 64.15/17.39 U11(ok(z0), ok(z1), ok(z2)) -> ok(U11(z0, z1, z2)) 64.15/17.39 snd(mark(z0)) -> mark(snd(z0)) 64.15/17.39 snd(ok(z0)) -> ok(snd(z0)) 64.15/17.39 splitAt(mark(z0), z1) -> mark(splitAt(z0, z1)) 64.15/17.39 splitAt(z0, mark(z1)) -> mark(splitAt(z0, z1)) 64.15/17.39 splitAt(ok(z0), ok(z1)) -> ok(splitAt(z0, z1)) 64.15/17.39 U111(mark(z0), z1) -> mark(U111(z0, z1)) 64.15/17.39 U111(ok(z0), ok(z1)) -> ok(U111(z0, z1)) 64.15/17.39 U112(mark(z0)) -> mark(U112(z0)) 64.15/17.39 U112(ok(z0)) -> ok(U112(z0)) 64.15/17.39 U121(mark(z0), z1) -> mark(U121(z0, z1)) 64.15/17.39 U121(ok(z0), ok(z1)) -> ok(U121(z0, z1)) 64.15/17.39 U122(mark(z0)) -> mark(U122(z0)) 64.15/17.39 U122(ok(z0)) -> ok(U122(z0)) 64.15/17.39 U131(mark(z0), z1, z2) -> mark(U131(z0, z1, z2)) 64.15/17.39 U131(ok(z0), ok(z1), ok(z2)) -> ok(U131(z0, z1, z2)) 64.15/17.39 U132(mark(z0), z1) -> mark(U132(z0, z1)) 64.15/17.39 U132(ok(z0), ok(z1)) -> ok(U132(z0, z1)) 64.15/17.39 U133(mark(z0)) -> mark(U133(z0)) 64.15/17.39 U133(ok(z0)) -> ok(U133(z0)) 64.15/17.39 U141(mark(z0), z1, z2) -> mark(U141(z0, z1, z2)) 64.15/17.39 U141(ok(z0), ok(z1), ok(z2)) -> ok(U141(z0, z1, z2)) 64.15/17.39 U142(mark(z0), z1) -> mark(U142(z0, z1)) 64.15/17.39 U142(ok(z0), ok(z1)) -> ok(U142(z0, z1)) 64.15/17.39 U143(mark(z0)) -> mark(U143(z0)) 64.15/17.39 U143(ok(z0)) -> ok(U143(z0)) 64.15/17.39 U151(mark(z0), z1, z2) -> mark(U151(z0, z1, z2)) 64.15/17.39 U151(ok(z0), ok(z1), ok(z2)) -> ok(U151(z0, z1, z2)) 64.15/17.39 U152(mark(z0), z1) -> mark(U152(z0, z1)) 64.15/17.39 U152(ok(z0), ok(z1)) -> ok(U152(z0, z1)) 64.15/17.39 U153(mark(z0)) -> mark(U153(z0)) 64.15/17.39 U153(ok(z0)) -> ok(U153(z0)) 64.15/17.39 U161(mark(z0), z1) -> mark(U161(z0, z1)) 64.15/17.39 U161(ok(z0), ok(z1)) -> ok(U161(z0, z1)) 64.15/17.39 cons(mark(z0), z1) -> mark(cons(z0, z1)) 64.15/17.39 cons(ok(z0), ok(z1)) -> ok(cons(z0, z1)) 64.15/17.39 natsFrom(mark(z0)) -> mark(natsFrom(z0)) 64.15/17.39 natsFrom(ok(z0)) -> ok(natsFrom(z0)) 64.15/17.39 s(mark(z0)) -> mark(s(z0)) 64.15/17.39 s(ok(z0)) -> ok(s(z0)) 64.15/17.39 U171(mark(z0), z1, z2) -> mark(U171(z0, z1, z2)) 64.15/17.39 U171(ok(z0), ok(z1), ok(z2)) -> ok(U171(z0, z1, z2)) 64.15/17.39 head(mark(z0)) -> mark(head(z0)) 64.15/17.39 head(ok(z0)) -> ok(head(z0)) 64.15/17.39 afterNth(mark(z0), z1) -> mark(afterNth(z0, z1)) 64.15/17.39 afterNth(z0, mark(z1)) -> mark(afterNth(z0, z1)) 64.15/17.39 afterNth(ok(z0), ok(z1)) -> ok(afterNth(z0, z1)) 64.15/17.39 U181(mark(z0), z1) -> mark(U181(z0, z1)) 64.15/17.39 U181(ok(z0), ok(z1)) -> ok(U181(z0, z1)) 64.15/17.39 U191(mark(z0), z1) -> mark(U191(z0, z1)) 64.15/17.39 U191(ok(z0), ok(z1)) -> ok(U191(z0, z1)) 64.15/17.39 pair(mark(z0), z1) -> mark(pair(z0, z1)) 64.15/17.39 pair(z0, mark(z1)) -> mark(pair(z0, z1)) 64.15/17.39 pair(ok(z0), ok(z1)) -> ok(pair(z0, z1)) 64.15/17.39 U201(mark(z0), z1, z2, z3) -> mark(U201(z0, z1, z2, z3)) 64.15/17.39 U201(ok(z0), ok(z1), ok(z2), ok(z3)) -> ok(U201(z0, z1, z2, z3)) 64.15/17.39 U202(mark(z0), z1) -> mark(U202(z0, z1)) 64.15/17.39 U202(ok(z0), ok(z1)) -> ok(U202(z0, z1)) 64.15/17.39 U21(mark(z0), z1) -> mark(U21(z0, z1)) 64.15/17.39 U21(ok(z0), ok(z1)) -> ok(U21(z0, z1)) 64.15/17.39 U211(mark(z0), z1) -> mark(U211(z0, z1)) 64.15/17.39 U211(ok(z0), ok(z1)) -> ok(U211(z0, z1)) 64.15/17.39 U221(mark(z0), z1, z2) -> mark(U221(z0, z1, z2)) 64.15/17.39 U221(ok(z0), ok(z1), ok(z2)) -> ok(U221(z0, z1, z2)) 64.15/17.39 fst(mark(z0)) -> mark(fst(z0)) 64.15/17.39 fst(ok(z0)) -> ok(fst(z0)) 64.15/17.39 U31(mark(z0), z1) -> mark(U31(z0, z1)) 64.15/17.39 U31(ok(z0), ok(z1)) -> ok(U31(z0, z1)) 64.15/17.39 U41(mark(z0), z1, z2) -> mark(U41(z0, z1, z2)) 64.15/17.39 U41(ok(z0), ok(z1), ok(z2)) -> ok(U41(z0, z1, z2)) 64.15/17.39 U42(mark(z0), z1) -> mark(U42(z0, z1)) 64.15/17.39 U42(ok(z0), ok(z1)) -> ok(U42(z0, z1)) 64.15/17.39 U43(mark(z0)) -> mark(U43(z0)) 64.15/17.40 U43(ok(z0)) -> ok(U43(z0)) 64.15/17.40 U51(mark(z0), z1, z2) -> mark(U51(z0, z1, z2)) 64.15/17.40 U51(ok(z0), ok(z1), ok(z2)) -> ok(U51(z0, z1, z2)) 64.15/17.40 U52(mark(z0), z1) -> mark(U52(z0, z1)) 64.15/17.40 U52(ok(z0), ok(z1)) -> ok(U52(z0, z1)) 64.15/17.40 U53(mark(z0)) -> mark(U53(z0)) 64.15/17.40 U53(ok(z0)) -> ok(U53(z0)) 64.15/17.40 U61(mark(z0), z1) -> mark(U61(z0, z1)) 64.15/17.40 U61(ok(z0), ok(z1)) -> ok(U61(z0, z1)) 64.15/17.40 U62(mark(z0)) -> mark(U62(z0)) 64.15/17.40 U62(ok(z0)) -> ok(U62(z0)) 64.15/17.40 U71(mark(z0), z1) -> mark(U71(z0, z1)) 64.15/17.40 U71(ok(z0), ok(z1)) -> ok(U71(z0, z1)) 64.15/17.40 U72(mark(z0)) -> mark(U72(z0)) 64.15/17.40 U72(ok(z0)) -> ok(U72(z0)) 64.15/17.40 U81(mark(z0), z1) -> mark(U81(z0, z1)) 64.15/17.40 U81(ok(z0), ok(z1)) -> ok(U81(z0, z1)) 64.15/17.40 U82(mark(z0)) -> mark(U82(z0)) 64.15/17.40 U82(ok(z0)) -> ok(U82(z0)) 64.15/17.40 U91(mark(z0), z1) -> mark(U91(z0, z1)) 64.15/17.40 U91(ok(z0), ok(z1)) -> ok(U91(z0, z1)) 64.15/17.40 U92(mark(z0)) -> mark(U92(z0)) 64.15/17.40 U92(ok(z0)) -> ok(U92(z0)) 64.15/17.40 and(mark(z0), z1) -> mark(and(z0, z1)) 64.15/17.40 and(ok(z0), ok(z1)) -> ok(and(z0, z1)) 64.15/17.40 tail(mark(z0)) -> mark(tail(z0)) 64.15/17.40 tail(ok(z0)) -> ok(tail(z0)) 64.15/17.40 take(mark(z0), z1) -> mark(take(z0, z1)) 64.15/17.40 take(z0, mark(z1)) -> mark(take(z0, z1)) 64.15/17.40 take(ok(z0), ok(z1)) -> ok(take(z0, z1)) 64.15/17.40 sel(mark(z0), z1) -> mark(sel(z0, z1)) 64.15/17.40 sel(z0, mark(z1)) -> mark(sel(z0, z1)) 64.15/17.40 sel(ok(z0), ok(z1)) -> ok(sel(z0, z1)) 64.15/17.40 proper(tt) -> ok(tt) 64.15/17.40 proper(nil) -> ok(nil) 64.15/17.40 proper(0) -> ok(0) 64.15/17.40 isNatural(ok(z0)) -> ok(isNatural(z0)) 64.15/17.40 isLNat(ok(z0)) -> ok(isLNat(z0)) 64.15/17.40 isPLNat(ok(z0)) -> ok(isPLNat(z0)) 64.15/17.40 isNaturalKind(ok(z0)) -> ok(isNaturalKind(z0)) 64.15/17.40 isLNatKind(ok(z0)) -> ok(isLNatKind(z0)) 64.15/17.40 isPLNatKind(ok(z0)) -> ok(isPLNatKind(z0)) 64.15/17.40 top(mark(z0)) -> top(proper(z0)) 64.15/17.40 top(ok(z0)) -> top(active(z0)) 64.15/17.40 Tuples: 64.15/17.40 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.15/17.40 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.15/17.40 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.15/17.40 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.15/17.40 U103'(mark(z0)) -> c4(U103'(z0)) 64.15/17.40 U103'(ok(z0)) -> c5(U103'(z0)) 64.15/17.40 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.15/17.40 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.15/17.40 SND(mark(z0)) -> c8(SND(z0)) 64.15/17.40 SND(ok(z0)) -> c9(SND(z0)) 64.15/17.40 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.15/17.40 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.15/17.40 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.15/17.40 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.15/17.40 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.15/17.40 U112'(mark(z0)) -> c15(U112'(z0)) 64.15/17.40 U112'(ok(z0)) -> c16(U112'(z0)) 64.15/17.40 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.15/17.40 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.15/17.40 U122'(mark(z0)) -> c19(U122'(z0)) 64.15/17.40 U122'(ok(z0)) -> c20(U122'(z0)) 64.15/17.40 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.15/17.40 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.15/17.40 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.15/17.40 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.15/17.40 U133'(mark(z0)) -> c25(U133'(z0)) 64.15/17.40 U133'(ok(z0)) -> c26(U133'(z0)) 64.15/17.40 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.15/17.40 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.15/17.40 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.15/17.40 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.15/17.40 U143'(mark(z0)) -> c31(U143'(z0)) 64.15/17.40 U143'(ok(z0)) -> c32(U143'(z0)) 64.15/17.40 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.15/17.40 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.15/17.40 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.15/17.40 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.15/17.40 U153'(mark(z0)) -> c37(U153'(z0)) 64.15/17.40 U153'(ok(z0)) -> c38(U153'(z0)) 64.15/17.40 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.15/17.40 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.15/17.40 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.15/17.40 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.15/17.40 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.15/17.40 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.15/17.40 S(mark(z0)) -> c45(S(z0)) 64.15/17.40 S(ok(z0)) -> c46(S(z0)) 64.15/17.40 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.15/17.40 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.15/17.40 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.15/17.40 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.15/17.40 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.15/17.40 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.15/17.40 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.15/17.40 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.15/17.40 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.15/17.40 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.15/17.40 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.15/17.40 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.15/17.40 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.15/17.40 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.15/17.40 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.15/17.40 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.15/17.40 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.15/17.40 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.15/17.40 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.15/17.40 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.15/17.40 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.15/17.40 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.15/17.40 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.15/17.40 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.15/17.40 FST(mark(z0)) -> c71(FST(z0)) 64.15/17.40 FST(ok(z0)) -> c72(FST(z0)) 64.15/17.40 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.15/17.40 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.15/17.40 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.15/17.40 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.15/17.40 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.15/17.40 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.15/17.40 U43'(mark(z0)) -> c79(U43'(z0)) 64.15/17.40 U43'(ok(z0)) -> c80(U43'(z0)) 64.15/17.40 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.15/17.40 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.15/17.40 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.15/17.40 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.15/17.40 U53'(mark(z0)) -> c85(U53'(z0)) 64.15/17.40 U53'(ok(z0)) -> c86(U53'(z0)) 64.15/17.40 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.15/17.40 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.15/17.40 U62'(mark(z0)) -> c89(U62'(z0)) 64.15/17.40 U62'(ok(z0)) -> c90(U62'(z0)) 64.15/17.40 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.15/17.40 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.15/17.40 U72'(mark(z0)) -> c93(U72'(z0)) 64.15/17.40 U72'(ok(z0)) -> c94(U72'(z0)) 64.15/17.40 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.15/17.40 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.15/17.40 U82'(mark(z0)) -> c97(U82'(z0)) 64.15/17.40 U82'(ok(z0)) -> c98(U82'(z0)) 64.15/17.40 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.15/17.40 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.15/17.40 U92'(mark(z0)) -> c101(U92'(z0)) 64.15/17.40 U92'(ok(z0)) -> c102(U92'(z0)) 64.15/17.40 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.15/17.40 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.15/17.40 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.15/17.40 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.15/17.40 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.15/17.40 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.15/17.40 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.15/17.40 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.15/17.40 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.15/17.40 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.15/17.40 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.15/17.40 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.15/17.40 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.15/17.40 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.15/17.40 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.15/17.40 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.15/17.40 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.15/17.40 S tuples: 64.15/17.40 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.15/17.40 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.15/17.40 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.15/17.40 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.15/17.41 U103'(mark(z0)) -> c4(U103'(z0)) 64.15/17.41 U103'(ok(z0)) -> c5(U103'(z0)) 64.15/17.41 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.15/17.41 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.15/17.41 SND(mark(z0)) -> c8(SND(z0)) 64.15/17.41 SND(ok(z0)) -> c9(SND(z0)) 64.15/17.41 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.15/17.41 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.15/17.41 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.15/17.41 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.15/17.41 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.15/17.41 U112'(mark(z0)) -> c15(U112'(z0)) 64.15/17.41 U112'(ok(z0)) -> c16(U112'(z0)) 64.15/17.41 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.15/17.41 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.15/17.41 U122'(mark(z0)) -> c19(U122'(z0)) 64.15/17.41 U122'(ok(z0)) -> c20(U122'(z0)) 64.15/17.41 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.15/17.41 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.15/17.41 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.15/17.41 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.15/17.41 U133'(mark(z0)) -> c25(U133'(z0)) 64.15/17.41 U133'(ok(z0)) -> c26(U133'(z0)) 64.15/17.41 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.15/17.41 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.15/17.41 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.15/17.41 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.15/17.41 U143'(mark(z0)) -> c31(U143'(z0)) 64.15/17.41 U143'(ok(z0)) -> c32(U143'(z0)) 64.15/17.41 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.15/17.41 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.15/17.41 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.15/17.41 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.15/17.41 U153'(mark(z0)) -> c37(U153'(z0)) 64.15/17.41 U153'(ok(z0)) -> c38(U153'(z0)) 64.15/17.41 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.15/17.41 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.15/17.41 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.15/17.41 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.15/17.41 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.15/17.41 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.15/17.41 S(mark(z0)) -> c45(S(z0)) 64.15/17.41 S(ok(z0)) -> c46(S(z0)) 64.15/17.41 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.15/17.41 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.15/17.41 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.15/17.41 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.15/17.41 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.15/17.41 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.15/17.41 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.15/17.41 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.15/17.41 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.15/17.41 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.15/17.41 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.15/17.41 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.15/17.41 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.15/17.41 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.15/17.41 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.15/17.41 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.15/17.41 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.15/17.41 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.15/17.41 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.15/17.41 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.15/17.41 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.15/17.41 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.15/17.41 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.15/17.41 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.15/17.41 FST(mark(z0)) -> c71(FST(z0)) 64.15/17.41 FST(ok(z0)) -> c72(FST(z0)) 64.15/17.41 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.15/17.41 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.15/17.41 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.15/17.41 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.15/17.41 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.15/17.41 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.15/17.41 U43'(mark(z0)) -> c79(U43'(z0)) 64.15/17.41 U43'(ok(z0)) -> c80(U43'(z0)) 64.15/17.41 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.15/17.41 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.15/17.41 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.15/17.41 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.15/17.41 U53'(mark(z0)) -> c85(U53'(z0)) 64.15/17.41 U53'(ok(z0)) -> c86(U53'(z0)) 64.15/17.41 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.15/17.41 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.15/17.41 U62'(mark(z0)) -> c89(U62'(z0)) 64.15/17.41 U62'(ok(z0)) -> c90(U62'(z0)) 64.15/17.41 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.15/17.41 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.15/17.41 U72'(mark(z0)) -> c93(U72'(z0)) 64.15/17.41 U72'(ok(z0)) -> c94(U72'(z0)) 64.15/17.41 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.15/17.41 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.15/17.41 U82'(mark(z0)) -> c97(U82'(z0)) 64.15/17.41 U82'(ok(z0)) -> c98(U82'(z0)) 64.15/17.41 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.15/17.41 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.15/17.41 U92'(mark(z0)) -> c101(U92'(z0)) 64.15/17.41 U92'(ok(z0)) -> c102(U92'(z0)) 64.15/17.41 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.15/17.41 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.15/17.41 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.15/17.41 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.15/17.41 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.15/17.41 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.15/17.41 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.15/17.41 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.15/17.41 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.15/17.41 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.15/17.41 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.15/17.41 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.15/17.41 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.15/17.41 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.15/17.41 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.15/17.41 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.15/17.41 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.15/17.41 K tuples:none 64.15/17.41 Defined Rule Symbols: U101_3, U102_2, U103_1, U11_3, snd_1, splitAt_2, U111_2, U112_1, U121_2, U122_1, U131_3, U132_2, U133_1, U141_3, U142_2, U143_1, U151_3, U152_2, U153_1, U161_2, cons_2, natsFrom_1, s_1, U171_3, head_1, afterNth_2, U181_2, U191_2, pair_2, U201_4, U202_2, U21_2, U211_2, U221_3, fst_1, U31_2, U41_3, U42_2, U43_1, U51_3, U52_2, U53_1, U61_2, U62_1, U71_2, U72_1, U81_2, U82_1, U91_2, U92_1, and_2, tail_1, take_2, sel_2, proper_1, isNatural_1, isLNat_1, isPLNat_1, isNaturalKind_1, isLNatKind_1, isPLNatKind_1, top_1 64.15/17.41 64.15/17.41 Defined Pair Symbols: U101'_3, U102'_2, U103'_1, U11'_3, SND_1, SPLITAT_2, U111'_2, U112'_1, U121'_2, U122'_1, U131'_3, U132'_2, U133'_1, U141'_3, U142'_2, U143'_1, U151'_3, U152'_2, U153'_1, U161'_2, CONS_2, NATSFROM_1, S_1, U171'_3, HEAD_1, AFTERNTH_2, U181'_2, U191'_2, PAIR_2, U201'_4, U202'_2, U21'_2, U211'_2, U221'_3, FST_1, U31'_2, U41'_3, U42'_2, U43'_1, U51'_3, U52'_2, U53'_1, U61'_2, U62'_1, U71'_2, U72'_1, U81'_2, U82'_1, U91'_2, U92'_1, AND_2, TAIL_1, TAKE_2, SEL_2, ISNATURAL_1, ISLNAT_1, ISPLNAT_1, ISNATURALKIND_1, ISLNATKIND_1, ISPLNATKIND_1, TOP_1 64.15/17.41 64.15/17.41 Compound Symbols: c_1, c1_1, c2_1, c3_1, c4_1, c5_1, c6_1, c7_1, c8_1, c9_1, c10_1, c11_1, c12_1, c13_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_1, c20_1, c21_1, c22_1, c23_1, c24_1, c25_1, c26_1, c27_1, c28_1, c29_1, c30_1, c31_1, c32_1, c33_1, c34_1, c35_1, c36_1, c37_1, c38_1, c39_1, c40_1, c41_1, c42_1, c43_1, c44_1, c45_1, c46_1, c47_1, c48_1, c49_1, c50_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c104_1, c105_1, c106_1, c107_1, c108_1, c109_1, c110_1, c111_1, c112_1, c116_1, c117_1, c118_1, c119_1, c120_1, c121_1, c122_1 64.15/17.41 64.15/17.41 64.15/17.41 ---------------------------------------- 64.15/17.41 64.15/17.41 (11) CdtUsableRulesProof (BOTH BOUNDS(ID, ID)) 64.15/17.41 The following rules are not usable and were removed: 64.15/17.41 U101(mark(z0), z1, z2) -> mark(U101(z0, z1, z2)) 64.15/17.41 U101(ok(z0), ok(z1), ok(z2)) -> ok(U101(z0, z1, z2)) 64.15/17.41 U102(mark(z0), z1) -> mark(U102(z0, z1)) 64.15/17.41 U102(ok(z0), ok(z1)) -> ok(U102(z0, z1)) 64.15/17.41 U103(mark(z0)) -> mark(U103(z0)) 64.15/17.41 U103(ok(z0)) -> ok(U103(z0)) 64.15/17.41 U11(mark(z0), z1, z2) -> mark(U11(z0, z1, z2)) 64.15/17.41 U11(ok(z0), ok(z1), ok(z2)) -> ok(U11(z0, z1, z2)) 64.15/17.41 snd(mark(z0)) -> mark(snd(z0)) 64.15/17.41 snd(ok(z0)) -> ok(snd(z0)) 64.15/17.41 splitAt(mark(z0), z1) -> mark(splitAt(z0, z1)) 64.15/17.41 splitAt(z0, mark(z1)) -> mark(splitAt(z0, z1)) 64.15/17.41 splitAt(ok(z0), ok(z1)) -> ok(splitAt(z0, z1)) 64.15/17.41 U111(mark(z0), z1) -> mark(U111(z0, z1)) 64.15/17.41 U111(ok(z0), ok(z1)) -> ok(U111(z0, z1)) 64.15/17.41 U112(mark(z0)) -> mark(U112(z0)) 64.15/17.41 U112(ok(z0)) -> ok(U112(z0)) 64.15/17.41 U121(mark(z0), z1) -> mark(U121(z0, z1)) 64.15/17.41 U121(ok(z0), ok(z1)) -> ok(U121(z0, z1)) 64.15/17.41 U122(mark(z0)) -> mark(U122(z0)) 64.15/17.41 U122(ok(z0)) -> ok(U122(z0)) 64.15/17.41 U131(mark(z0), z1, z2) -> mark(U131(z0, z1, z2)) 64.15/17.41 U131(ok(z0), ok(z1), ok(z2)) -> ok(U131(z0, z1, z2)) 64.49/17.48 U132(mark(z0), z1) -> mark(U132(z0, z1)) 64.49/17.48 U132(ok(z0), ok(z1)) -> ok(U132(z0, z1)) 64.49/17.48 U133(mark(z0)) -> mark(U133(z0)) 64.49/17.48 U133(ok(z0)) -> ok(U133(z0)) 64.49/17.48 U141(mark(z0), z1, z2) -> mark(U141(z0, z1, z2)) 64.49/17.48 U141(ok(z0), ok(z1), ok(z2)) -> ok(U141(z0, z1, z2)) 64.49/17.48 U142(mark(z0), z1) -> mark(U142(z0, z1)) 64.49/17.48 U142(ok(z0), ok(z1)) -> ok(U142(z0, z1)) 64.49/17.48 U143(mark(z0)) -> mark(U143(z0)) 64.49/17.48 U143(ok(z0)) -> ok(U143(z0)) 64.49/17.48 U151(mark(z0), z1, z2) -> mark(U151(z0, z1, z2)) 64.49/17.48 U151(ok(z0), ok(z1), ok(z2)) -> ok(U151(z0, z1, z2)) 64.49/17.48 U152(mark(z0), z1) -> mark(U152(z0, z1)) 64.49/17.48 U152(ok(z0), ok(z1)) -> ok(U152(z0, z1)) 64.49/17.48 U153(mark(z0)) -> mark(U153(z0)) 64.49/17.48 U153(ok(z0)) -> ok(U153(z0)) 64.49/17.48 U161(mark(z0), z1) -> mark(U161(z0, z1)) 64.49/17.48 U161(ok(z0), ok(z1)) -> ok(U161(z0, z1)) 64.49/17.48 cons(mark(z0), z1) -> mark(cons(z0, z1)) 64.49/17.48 cons(ok(z0), ok(z1)) -> ok(cons(z0, z1)) 64.49/17.48 natsFrom(mark(z0)) -> mark(natsFrom(z0)) 64.49/17.48 natsFrom(ok(z0)) -> ok(natsFrom(z0)) 64.49/17.48 s(mark(z0)) -> mark(s(z0)) 64.49/17.48 s(ok(z0)) -> ok(s(z0)) 64.49/17.48 U171(mark(z0), z1, z2) -> mark(U171(z0, z1, z2)) 64.49/17.48 U171(ok(z0), ok(z1), ok(z2)) -> ok(U171(z0, z1, z2)) 64.49/17.48 head(mark(z0)) -> mark(head(z0)) 64.49/17.48 head(ok(z0)) -> ok(head(z0)) 64.49/17.48 afterNth(mark(z0), z1) -> mark(afterNth(z0, z1)) 64.49/17.48 afterNth(z0, mark(z1)) -> mark(afterNth(z0, z1)) 64.49/17.48 afterNth(ok(z0), ok(z1)) -> ok(afterNth(z0, z1)) 64.49/17.48 U181(mark(z0), z1) -> mark(U181(z0, z1)) 64.49/17.48 U181(ok(z0), ok(z1)) -> ok(U181(z0, z1)) 64.49/17.48 U191(mark(z0), z1) -> mark(U191(z0, z1)) 64.49/17.48 U191(ok(z0), ok(z1)) -> ok(U191(z0, z1)) 64.49/17.48 pair(mark(z0), z1) -> mark(pair(z0, z1)) 64.49/17.48 pair(z0, mark(z1)) -> mark(pair(z0, z1)) 64.49/17.48 pair(ok(z0), ok(z1)) -> ok(pair(z0, z1)) 64.49/17.48 U201(mark(z0), z1, z2, z3) -> mark(U201(z0, z1, z2, z3)) 64.49/17.48 U201(ok(z0), ok(z1), ok(z2), ok(z3)) -> ok(U201(z0, z1, z2, z3)) 64.49/17.48 U202(mark(z0), z1) -> mark(U202(z0, z1)) 64.49/17.48 U202(ok(z0), ok(z1)) -> ok(U202(z0, z1)) 64.49/17.48 U21(mark(z0), z1) -> mark(U21(z0, z1)) 64.49/17.48 U21(ok(z0), ok(z1)) -> ok(U21(z0, z1)) 64.49/17.48 U211(mark(z0), z1) -> mark(U211(z0, z1)) 64.49/17.48 U211(ok(z0), ok(z1)) -> ok(U211(z0, z1)) 64.49/17.48 U221(mark(z0), z1, z2) -> mark(U221(z0, z1, z2)) 64.49/17.48 U221(ok(z0), ok(z1), ok(z2)) -> ok(U221(z0, z1, z2)) 64.49/17.48 fst(mark(z0)) -> mark(fst(z0)) 64.49/17.48 fst(ok(z0)) -> ok(fst(z0)) 64.49/17.48 U31(mark(z0), z1) -> mark(U31(z0, z1)) 64.49/17.48 U31(ok(z0), ok(z1)) -> ok(U31(z0, z1)) 64.49/17.48 U41(mark(z0), z1, z2) -> mark(U41(z0, z1, z2)) 64.49/17.48 U41(ok(z0), ok(z1), ok(z2)) -> ok(U41(z0, z1, z2)) 64.49/17.48 U42(mark(z0), z1) -> mark(U42(z0, z1)) 64.49/17.48 U42(ok(z0), ok(z1)) -> ok(U42(z0, z1)) 64.49/17.48 U43(mark(z0)) -> mark(U43(z0)) 64.49/17.48 U43(ok(z0)) -> ok(U43(z0)) 64.49/17.48 U51(mark(z0), z1, z2) -> mark(U51(z0, z1, z2)) 64.49/17.48 U51(ok(z0), ok(z1), ok(z2)) -> ok(U51(z0, z1, z2)) 64.49/17.48 U52(mark(z0), z1) -> mark(U52(z0, z1)) 64.49/17.48 U52(ok(z0), ok(z1)) -> ok(U52(z0, z1)) 64.49/17.48 U53(mark(z0)) -> mark(U53(z0)) 64.49/17.48 U53(ok(z0)) -> ok(U53(z0)) 64.49/17.48 U61(mark(z0), z1) -> mark(U61(z0, z1)) 64.49/17.48 U61(ok(z0), ok(z1)) -> ok(U61(z0, z1)) 64.49/17.48 U62(mark(z0)) -> mark(U62(z0)) 64.49/17.48 U62(ok(z0)) -> ok(U62(z0)) 64.49/17.48 U71(mark(z0), z1) -> mark(U71(z0, z1)) 64.49/17.48 U71(ok(z0), ok(z1)) -> ok(U71(z0, z1)) 64.49/17.48 U72(mark(z0)) -> mark(U72(z0)) 64.49/17.48 U72(ok(z0)) -> ok(U72(z0)) 64.49/17.48 U81(mark(z0), z1) -> mark(U81(z0, z1)) 64.49/17.48 U81(ok(z0), ok(z1)) -> ok(U81(z0, z1)) 64.49/17.48 U82(mark(z0)) -> mark(U82(z0)) 64.49/17.48 U82(ok(z0)) -> ok(U82(z0)) 64.49/17.48 U91(mark(z0), z1) -> mark(U91(z0, z1)) 64.49/17.48 U91(ok(z0), ok(z1)) -> ok(U91(z0, z1)) 64.49/17.48 U92(mark(z0)) -> mark(U92(z0)) 64.49/17.48 U92(ok(z0)) -> ok(U92(z0)) 64.49/17.48 and(mark(z0), z1) -> mark(and(z0, z1)) 64.49/17.48 and(ok(z0), ok(z1)) -> ok(and(z0, z1)) 64.49/17.48 tail(mark(z0)) -> mark(tail(z0)) 64.49/17.48 tail(ok(z0)) -> ok(tail(z0)) 64.49/17.48 take(mark(z0), z1) -> mark(take(z0, z1)) 64.49/17.48 take(z0, mark(z1)) -> mark(take(z0, z1)) 64.49/17.48 take(ok(z0), ok(z1)) -> ok(take(z0, z1)) 64.49/17.48 sel(mark(z0), z1) -> mark(sel(z0, z1)) 64.49/17.48 sel(z0, mark(z1)) -> mark(sel(z0, z1)) 64.49/17.48 sel(ok(z0), ok(z1)) -> ok(sel(z0, z1)) 64.49/17.48 isNatural(ok(z0)) -> ok(isNatural(z0)) 64.49/17.48 isLNat(ok(z0)) -> ok(isLNat(z0)) 64.49/17.48 isPLNat(ok(z0)) -> ok(isPLNat(z0)) 64.49/17.48 isNaturalKind(ok(z0)) -> ok(isNaturalKind(z0)) 64.49/17.48 isLNatKind(ok(z0)) -> ok(isLNatKind(z0)) 64.49/17.48 isPLNatKind(ok(z0)) -> ok(isPLNatKind(z0)) 64.49/17.48 top(mark(z0)) -> top(proper(z0)) 64.49/17.48 top(ok(z0)) -> top(active(z0)) 64.49/17.48 64.49/17.48 ---------------------------------------- 64.49/17.48 64.49/17.48 (12) 64.49/17.48 Obligation: 64.49/17.48 Complexity Dependency Tuples Problem 64.49/17.48 64.49/17.48 Rules: 64.49/17.48 proper(tt) -> ok(tt) 64.49/17.48 proper(nil) -> ok(nil) 64.49/17.48 proper(0) -> ok(0) 64.49/17.48 Tuples: 64.49/17.48 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.48 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.48 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.48 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.48 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.48 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.48 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.48 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.48 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.48 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.48 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.48 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.48 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.48 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.48 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.48 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.48 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.48 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.48 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.48 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.48 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.48 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.48 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.48 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.48 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.48 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.48 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.48 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.48 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.48 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.48 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.48 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.48 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.48 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.48 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.48 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.48 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.48 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.48 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.48 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.48 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.48 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.48 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.48 S(mark(z0)) -> c45(S(z0)) 64.49/17.48 S(ok(z0)) -> c46(S(z0)) 64.49/17.48 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.48 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.48 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.48 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.48 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.48 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.48 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.48 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.48 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.48 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.48 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.48 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.48 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.48 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.48 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.48 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.48 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.48 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.48 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.48 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.48 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.48 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.48 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.48 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.48 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.48 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.48 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.48 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.48 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.48 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.48 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.48 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.48 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.48 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.48 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.48 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.48 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.48 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.48 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.48 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.48 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.48 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.48 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.48 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.48 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.48 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.48 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.48 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.48 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.48 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.48 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.48 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.48 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.48 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.48 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.48 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.48 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.48 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.48 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.48 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.48 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.48 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.48 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.48 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.48 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.48 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.48 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.48 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.48 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.48 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.48 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.48 S tuples: 64.49/17.48 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.48 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.48 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.48 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.48 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.48 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.48 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.48 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.48 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.48 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.48 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.48 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.48 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.48 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.48 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.48 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.48 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.48 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.48 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.48 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.48 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.48 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.48 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.48 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.48 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.48 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.48 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.48 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.48 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.48 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.48 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.48 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.48 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.48 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.48 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.48 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.48 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.48 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.48 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.48 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.48 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.48 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.48 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.48 S(mark(z0)) -> c45(S(z0)) 64.49/17.48 S(ok(z0)) -> c46(S(z0)) 64.49/17.48 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.48 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.48 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.48 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.48 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.48 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.48 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.48 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.48 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.48 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.48 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.48 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.48 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.48 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.48 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.48 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.48 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.48 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.48 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.48 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.48 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.48 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.48 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.48 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.48 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.48 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.48 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.48 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.48 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.48 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.48 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.48 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.48 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.48 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.48 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.48 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.48 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.48 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.48 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.48 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.48 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.48 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.48 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.48 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.48 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.48 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.48 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.48 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.48 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.48 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.48 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.48 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.48 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.48 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.48 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.48 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.48 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.48 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.48 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.48 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.48 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.48 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.48 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.48 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.48 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.48 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.48 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.48 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.48 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.48 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.48 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.48 K tuples:none 64.49/17.48 Defined Rule Symbols: proper_1 64.49/17.48 64.49/17.48 Defined Pair Symbols: U101'_3, U102'_2, U103'_1, U11'_3, SND_1, SPLITAT_2, U111'_2, U112'_1, U121'_2, U122'_1, U131'_3, U132'_2, U133'_1, U141'_3, U142'_2, U143'_1, U151'_3, U152'_2, U153'_1, U161'_2, CONS_2, NATSFROM_1, S_1, U171'_3, HEAD_1, AFTERNTH_2, U181'_2, U191'_2, PAIR_2, U201'_4, U202'_2, U21'_2, U211'_2, U221'_3, FST_1, U31'_2, U41'_3, U42'_2, U43'_1, U51'_3, U52'_2, U53'_1, U61'_2, U62'_1, U71'_2, U72'_1, U81'_2, U82'_1, U91'_2, U92'_1, AND_2, TAIL_1, TAKE_2, SEL_2, ISNATURAL_1, ISLNAT_1, ISPLNAT_1, ISNATURALKIND_1, ISLNATKIND_1, ISPLNATKIND_1, TOP_1 64.49/17.48 64.49/17.48 Compound Symbols: c_1, c1_1, c2_1, c3_1, c4_1, c5_1, c6_1, c7_1, c8_1, c9_1, c10_1, c11_1, c12_1, c13_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_1, c20_1, c21_1, c22_1, c23_1, c24_1, c25_1, c26_1, c27_1, c28_1, c29_1, c30_1, c31_1, c32_1, c33_1, c34_1, c35_1, c36_1, c37_1, c38_1, c39_1, c40_1, c41_1, c42_1, c43_1, c44_1, c45_1, c46_1, c47_1, c48_1, c49_1, c50_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c104_1, c105_1, c106_1, c107_1, c108_1, c109_1, c110_1, c111_1, c112_1, c116_1, c117_1, c118_1, c119_1, c120_1, c121_1, c122_1 64.49/17.48 64.49/17.48 64.49/17.48 ---------------------------------------- 64.49/17.48 64.49/17.48 (13) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 64.49/17.48 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 64.49/17.48 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.48 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.48 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.48 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.48 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.48 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.48 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.48 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.48 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.48 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.48 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.48 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.48 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.48 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.48 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.48 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.48 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.48 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.48 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.48 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.48 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.48 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.48 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.48 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.48 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.48 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.48 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.48 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.48 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.48 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.48 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.48 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.48 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.48 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.48 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.48 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.48 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.48 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.48 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.48 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.48 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.48 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.48 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.48 S(mark(z0)) -> c45(S(z0)) 64.49/17.48 S(ok(z0)) -> c46(S(z0)) 64.49/17.48 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.48 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.48 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.48 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.48 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.48 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.48 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.48 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.48 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.48 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.48 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.48 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.48 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.48 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.48 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.48 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.48 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.48 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.48 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.48 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.48 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.48 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.48 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.48 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.48 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.48 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.48 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.48 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.48 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.48 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.48 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.48 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.48 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.48 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.48 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.48 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.48 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.48 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.48 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.48 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.48 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.48 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.48 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.48 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.48 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.48 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.48 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.48 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.48 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.48 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.48 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.48 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.48 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.48 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.48 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.48 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.48 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.48 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.48 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.48 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.48 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.48 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.48 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.48 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.48 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.48 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.48 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.48 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.48 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.48 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.48 We considered the (Usable) Rules: 64.49/17.48 proper(tt) -> ok(tt) 64.49/17.48 proper(nil) -> ok(nil) 64.49/17.48 proper(0) -> ok(0) 64.49/17.48 And the Tuples: 64.49/17.48 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.48 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.48 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.48 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.48 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.48 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.48 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.48 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.48 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.48 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.48 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.48 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.48 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.48 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.48 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.48 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.48 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.48 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.48 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.48 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.48 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.48 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.48 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.48 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.48 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.48 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.48 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.48 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.48 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.48 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.48 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.48 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.48 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.48 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.48 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.48 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.48 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.48 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.48 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.48 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.48 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.48 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.48 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.48 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.48 S(mark(z0)) -> c45(S(z0)) 64.49/17.48 S(ok(z0)) -> c46(S(z0)) 64.49/17.48 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.48 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.48 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.48 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.48 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.48 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.48 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.48 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.48 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.48 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.48 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.48 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.48 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.48 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.48 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.48 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.48 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.48 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.48 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.48 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.48 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.48 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.48 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.48 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.48 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.48 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.48 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.48 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.48 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.48 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.48 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.48 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.48 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.48 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.48 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.49 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.49 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.49 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.49 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.49 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.49 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.49 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.49 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.49 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.49 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.49 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.49 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.49 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.49 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.49 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.49 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.49 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.49 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.49 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.49 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.49 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.49 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.49 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.49 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.49 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.49 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.49 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.49 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.49 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.49 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.49 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.49 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.49 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.49 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.49 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.49 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 The order we found is given by the following interpretation: 64.49/17.49 64.49/17.49 Polynomial interpretation : 64.49/17.49 64.49/17.49 POL(0) = [1] 64.49/17.49 POL(AFTERNTH(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(AND(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(CONS(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(FST(x_1)) = x_1 64.49/17.49 POL(HEAD(x_1)) = x_1 64.49/17.49 POL(ISLNAT(x_1)) = x_1 64.49/17.49 POL(ISLNATKIND(x_1)) = x_1 64.49/17.49 POL(ISNATURAL(x_1)) = x_1 64.49/17.49 POL(ISNATURALKIND(x_1)) = x_1 64.49/17.49 POL(ISPLNAT(x_1)) = x_1 64.49/17.49 POL(ISPLNATKIND(x_1)) = x_1 64.49/17.49 POL(NATSFROM(x_1)) = x_1 64.49/17.49 POL(PAIR(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(S(x_1)) = x_1 64.49/17.49 POL(SEL(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(SND(x_1)) = x_1 64.49/17.49 POL(SPLITAT(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(TAIL(x_1)) = x_1 64.49/17.49 POL(TAKE(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(TOP(x_1)) = x_1 64.49/17.49 POL(U101'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U102'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U103'(x_1)) = x_1 64.49/17.49 POL(U11'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U111'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U112'(x_1)) = x_1 64.49/17.49 POL(U121'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U122'(x_1)) = x_1 64.49/17.49 POL(U131'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U132'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U133'(x_1)) = x_1 64.49/17.49 POL(U141'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U142'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U143'(x_1)) = x_1 64.49/17.49 POL(U151'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U152'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U153'(x_1)) = x_1 64.49/17.49 POL(U161'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U171'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U181'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U191'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U201'(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 64.49/17.49 POL(U202'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U21'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U211'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U221'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U31'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U41'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U42'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U43'(x_1)) = x_1 64.49/17.49 POL(U51'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U52'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U53'(x_1)) = x_1 64.49/17.49 POL(U61'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U62'(x_1)) = x_1 64.49/17.49 POL(U71'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U72'(x_1)) = x_1 64.49/17.49 POL(U81'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U82'(x_1)) = x_1 64.49/17.49 POL(U91'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U92'(x_1)) = x_1 64.49/17.49 POL(c(x_1)) = x_1 64.49/17.49 POL(c1(x_1)) = x_1 64.49/17.49 POL(c10(x_1)) = x_1 64.49/17.49 POL(c100(x_1)) = x_1 64.49/17.49 POL(c101(x_1)) = x_1 64.49/17.49 POL(c102(x_1)) = x_1 64.49/17.49 POL(c103(x_1)) = x_1 64.49/17.49 POL(c104(x_1)) = x_1 64.49/17.49 POL(c105(x_1)) = x_1 64.49/17.49 POL(c106(x_1)) = x_1 64.49/17.49 POL(c107(x_1)) = x_1 64.49/17.49 POL(c108(x_1)) = x_1 64.49/17.49 POL(c109(x_1)) = x_1 64.49/17.49 POL(c11(x_1)) = x_1 64.49/17.49 POL(c110(x_1)) = x_1 64.49/17.49 POL(c111(x_1)) = x_1 64.49/17.49 POL(c112(x_1)) = x_1 64.49/17.49 POL(c116(x_1)) = x_1 64.49/17.49 POL(c117(x_1)) = x_1 64.49/17.49 POL(c118(x_1)) = x_1 64.49/17.49 POL(c119(x_1)) = x_1 64.49/17.49 POL(c12(x_1)) = x_1 64.49/17.49 POL(c120(x_1)) = x_1 64.49/17.49 POL(c121(x_1)) = x_1 64.49/17.49 POL(c122(x_1)) = x_1 64.49/17.49 POL(c13(x_1)) = x_1 64.49/17.49 POL(c14(x_1)) = x_1 64.49/17.49 POL(c15(x_1)) = x_1 64.49/17.49 POL(c16(x_1)) = x_1 64.49/17.49 POL(c17(x_1)) = x_1 64.49/17.49 POL(c18(x_1)) = x_1 64.49/17.49 POL(c19(x_1)) = x_1 64.49/17.49 POL(c2(x_1)) = x_1 64.49/17.49 POL(c20(x_1)) = x_1 64.49/17.49 POL(c21(x_1)) = x_1 64.49/17.49 POL(c22(x_1)) = x_1 64.49/17.49 POL(c23(x_1)) = x_1 64.49/17.49 POL(c24(x_1)) = x_1 64.49/17.49 POL(c25(x_1)) = x_1 64.49/17.49 POL(c26(x_1)) = x_1 64.49/17.49 POL(c27(x_1)) = x_1 64.49/17.49 POL(c28(x_1)) = x_1 64.49/17.49 POL(c29(x_1)) = x_1 64.49/17.49 POL(c3(x_1)) = x_1 64.49/17.49 POL(c30(x_1)) = x_1 64.49/17.49 POL(c31(x_1)) = x_1 64.49/17.49 POL(c32(x_1)) = x_1 64.49/17.49 POL(c33(x_1)) = x_1 64.49/17.49 POL(c34(x_1)) = x_1 64.49/17.49 POL(c35(x_1)) = x_1 64.49/17.49 POL(c36(x_1)) = x_1 64.49/17.49 POL(c37(x_1)) = x_1 64.49/17.49 POL(c38(x_1)) = x_1 64.49/17.49 POL(c39(x_1)) = x_1 64.49/17.49 POL(c4(x_1)) = x_1 64.49/17.49 POL(c40(x_1)) = x_1 64.49/17.49 POL(c41(x_1)) = x_1 64.49/17.49 POL(c42(x_1)) = x_1 64.49/17.49 POL(c43(x_1)) = x_1 64.49/17.49 POL(c44(x_1)) = x_1 64.49/17.49 POL(c45(x_1)) = x_1 64.49/17.49 POL(c46(x_1)) = x_1 64.49/17.49 POL(c47(x_1)) = x_1 64.49/17.49 POL(c48(x_1)) = x_1 64.49/17.49 POL(c49(x_1)) = x_1 64.49/17.49 POL(c5(x_1)) = x_1 64.49/17.49 POL(c50(x_1)) = x_1 64.49/17.49 POL(c51(x_1)) = x_1 64.49/17.49 POL(c52(x_1)) = x_1 64.49/17.49 POL(c53(x_1)) = x_1 64.49/17.49 POL(c54(x_1)) = x_1 64.49/17.49 POL(c55(x_1)) = x_1 64.49/17.49 POL(c56(x_1)) = x_1 64.49/17.49 POL(c57(x_1)) = x_1 64.49/17.49 POL(c58(x_1)) = x_1 64.49/17.49 POL(c59(x_1)) = x_1 64.49/17.49 POL(c6(x_1)) = x_1 64.49/17.49 POL(c60(x_1)) = x_1 64.49/17.49 POL(c61(x_1)) = x_1 64.49/17.49 POL(c62(x_1)) = x_1 64.49/17.49 POL(c63(x_1)) = x_1 64.49/17.49 POL(c64(x_1)) = x_1 64.49/17.49 POL(c65(x_1)) = x_1 64.49/17.49 POL(c66(x_1)) = x_1 64.49/17.49 POL(c67(x_1)) = x_1 64.49/17.49 POL(c68(x_1)) = x_1 64.49/17.49 POL(c69(x_1)) = x_1 64.49/17.49 POL(c7(x_1)) = x_1 64.49/17.49 POL(c70(x_1)) = x_1 64.49/17.49 POL(c71(x_1)) = x_1 64.49/17.49 POL(c72(x_1)) = x_1 64.49/17.49 POL(c73(x_1)) = x_1 64.49/17.49 POL(c74(x_1)) = x_1 64.49/17.49 POL(c75(x_1)) = x_1 64.49/17.49 POL(c76(x_1)) = x_1 64.49/17.49 POL(c77(x_1)) = x_1 64.49/17.49 POL(c78(x_1)) = x_1 64.49/17.49 POL(c79(x_1)) = x_1 64.49/17.49 POL(c8(x_1)) = x_1 64.49/17.49 POL(c80(x_1)) = x_1 64.49/17.49 POL(c81(x_1)) = x_1 64.49/17.49 POL(c82(x_1)) = x_1 64.49/17.49 POL(c83(x_1)) = x_1 64.49/17.49 POL(c84(x_1)) = x_1 64.49/17.49 POL(c85(x_1)) = x_1 64.49/17.49 POL(c86(x_1)) = x_1 64.49/17.49 POL(c87(x_1)) = x_1 64.49/17.49 POL(c88(x_1)) = x_1 64.49/17.49 POL(c89(x_1)) = x_1 64.49/17.49 POL(c9(x_1)) = x_1 64.49/17.49 POL(c90(x_1)) = x_1 64.49/17.49 POL(c91(x_1)) = x_1 64.49/17.49 POL(c92(x_1)) = x_1 64.49/17.49 POL(c93(x_1)) = x_1 64.49/17.49 POL(c94(x_1)) = x_1 64.49/17.49 POL(c95(x_1)) = x_1 64.49/17.49 POL(c96(x_1)) = x_1 64.49/17.49 POL(c97(x_1)) = x_1 64.49/17.49 POL(c98(x_1)) = x_1 64.49/17.49 POL(c99(x_1)) = x_1 64.49/17.49 POL(mark(x_1)) = [1] + x_1 64.49/17.49 POL(nil) = [1] 64.49/17.49 POL(ok(x_1)) = [1] + x_1 64.49/17.49 POL(proper(x_1)) = [1] + x_1 64.49/17.49 POL(tt) = [1] 64.49/17.49 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (14) 64.49/17.49 Obligation: 64.49/17.49 Complexity Dependency Tuples Problem 64.49/17.49 64.49/17.49 Rules: 64.49/17.49 proper(tt) -> ok(tt) 64.49/17.49 proper(nil) -> ok(nil) 64.49/17.49 proper(0) -> ok(0) 64.49/17.49 Tuples: 64.49/17.49 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.49 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.49 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.49 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.49 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.49 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.49 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.49 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.49 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.49 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.49 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.49 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.49 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.49 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.49 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.49 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.49 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.49 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.49 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.49 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.49 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.49 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.49 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.49 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.49 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.49 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.49 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.49 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.49 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.49 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.49 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.49 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.49 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.49 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.49 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.49 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.49 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.49 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.49 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.49 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.49 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.49 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.49 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.49 S(mark(z0)) -> c45(S(z0)) 64.49/17.49 S(ok(z0)) -> c46(S(z0)) 64.49/17.49 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.49 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.49 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.49 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.49 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.49 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.49 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.49 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.49 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.49 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.49 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.49 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.49 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.49 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.49 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.49 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.49 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.49 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.49 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.49 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.49 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.49 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.49 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.49 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.49 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.49 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.49 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.49 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.49 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.49 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.49 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.49 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.49 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.49 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.49 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.49 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.49 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.49 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.49 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.49 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.49 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.49 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.49 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.49 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.49 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.49 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.49 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.49 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.49 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.49 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.49 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.49 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.49 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.49 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.49 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.49 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.49 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.49 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.49 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.49 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.49 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.49 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.49 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.49 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.49 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.49 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.49 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.49 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.49 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.49 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 S tuples: 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 K tuples: 64.49/17.49 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.49 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.49 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.49 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.49 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.49 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.49 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.49 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.49 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.49 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.49 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.49 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.49 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.49 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.49 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.49 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.49 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.49 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.49 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.49 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.49 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.49 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.49 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.49 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.49 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.49 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.49 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.49 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.49 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.49 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.49 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.49 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.49 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.49 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.49 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.49 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.49 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.49 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.49 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.49 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.49 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.49 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.49 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.49 S(mark(z0)) -> c45(S(z0)) 64.49/17.49 S(ok(z0)) -> c46(S(z0)) 64.49/17.49 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.49 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.49 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.49 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.49 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.49 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.49 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.49 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.49 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.49 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.49 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.49 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.49 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.49 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.49 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.49 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.49 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.49 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.49 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.49 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.49 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.49 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.49 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.49 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.49 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.49 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.49 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.49 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.49 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.49 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.49 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.49 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.49 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.49 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.49 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.49 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.49 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.49 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.49 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.49 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.49 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.49 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.49 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.49 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.49 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.49 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.49 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.49 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.49 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.49 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.49 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.49 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.49 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.49 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.49 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.49 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.49 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.49 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.49 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.49 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.49 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.49 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.49 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.49 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.49 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.49 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.49 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.49 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.49 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.49 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.49 Defined Rule Symbols: proper_1 64.49/17.49 64.49/17.49 Defined Pair Symbols: U101'_3, U102'_2, U103'_1, U11'_3, SND_1, SPLITAT_2, U111'_2, U112'_1, U121'_2, U122'_1, U131'_3, U132'_2, U133'_1, U141'_3, U142'_2, U143'_1, U151'_3, U152'_2, U153'_1, U161'_2, CONS_2, NATSFROM_1, S_1, U171'_3, HEAD_1, AFTERNTH_2, U181'_2, U191'_2, PAIR_2, U201'_4, U202'_2, U21'_2, U211'_2, U221'_3, FST_1, U31'_2, U41'_3, U42'_2, U43'_1, U51'_3, U52'_2, U53'_1, U61'_2, U62'_1, U71'_2, U72'_1, U81'_2, U82'_1, U91'_2, U92'_1, AND_2, TAIL_1, TAKE_2, SEL_2, ISNATURAL_1, ISLNAT_1, ISPLNAT_1, ISNATURALKIND_1, ISLNATKIND_1, ISPLNATKIND_1, TOP_1 64.49/17.49 64.49/17.49 Compound Symbols: c_1, c1_1, c2_1, c3_1, c4_1, c5_1, c6_1, c7_1, c8_1, c9_1, c10_1, c11_1, c12_1, c13_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_1, c20_1, c21_1, c22_1, c23_1, c24_1, c25_1, c26_1, c27_1, c28_1, c29_1, c30_1, c31_1, c32_1, c33_1, c34_1, c35_1, c36_1, c37_1, c38_1, c39_1, c40_1, c41_1, c42_1, c43_1, c44_1, c45_1, c46_1, c47_1, c48_1, c49_1, c50_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c104_1, c105_1, c106_1, c107_1, c108_1, c109_1, c110_1, c111_1, c112_1, c116_1, c117_1, c118_1, c119_1, c120_1, c121_1, c122_1 64.49/17.49 64.49/17.49 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (15) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1))) 64.49/17.49 Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S. 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 We considered the (Usable) Rules: 64.49/17.49 proper(tt) -> ok(tt) 64.49/17.49 proper(nil) -> ok(nil) 64.49/17.49 proper(0) -> ok(0) 64.49/17.49 And the Tuples: 64.49/17.49 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.49 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.49 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.49 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.49 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.49 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.49 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.49 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.49 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.49 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.49 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.49 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.49 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.49 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.49 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.49 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.49 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.49 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.49 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.49 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.49 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.49 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.49 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.49 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.49 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.49 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.49 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.49 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.49 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.49 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.49 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.49 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.49 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.49 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.49 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.49 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.49 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.49 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.49 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.49 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.49 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.49 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.49 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.49 S(mark(z0)) -> c45(S(z0)) 64.49/17.49 S(ok(z0)) -> c46(S(z0)) 64.49/17.49 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.49 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.49 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.49 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.49 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.49 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.49 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.49 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.49 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.49 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.49 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.49 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.49 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.49 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.49 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.49 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.49 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.49 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.49 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.49 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.49 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.49 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.49 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.49 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.49 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.49 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.49 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.49 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.49 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.49 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.49 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.49 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.49 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.49 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.49 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.49 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.49 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.49 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.49 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.49 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.49 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.49 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.49 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.49 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.49 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.49 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.49 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.49 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.49 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.49 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.49 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.49 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.49 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.49 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.49 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.49 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.49 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.49 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.49 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.49 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.49 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.49 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.49 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.49 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.49 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.49 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.49 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.49 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.49 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.49 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 The order we found is given by the following interpretation: 64.49/17.49 64.49/17.49 Polynomial interpretation : 64.49/17.49 64.49/17.49 POL(0) = [1] 64.49/17.49 POL(AFTERNTH(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(AND(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(CONS(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(FST(x_1)) = x_1 64.49/17.49 POL(HEAD(x_1)) = x_1 64.49/17.49 POL(ISLNAT(x_1)) = x_1 64.49/17.49 POL(ISLNATKIND(x_1)) = x_1 64.49/17.49 POL(ISNATURAL(x_1)) = x_1 64.49/17.49 POL(ISNATURALKIND(x_1)) = x_1 64.49/17.49 POL(ISPLNAT(x_1)) = x_1 64.49/17.49 POL(ISPLNATKIND(x_1)) = x_1 64.49/17.49 POL(NATSFROM(x_1)) = x_1 64.49/17.49 POL(PAIR(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(S(x_1)) = x_1 64.49/17.49 POL(SEL(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(SND(x_1)) = x_1 64.49/17.49 POL(SPLITAT(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(TAIL(x_1)) = x_1 64.49/17.49 POL(TAKE(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(TOP(x_1)) = x_1 64.49/17.49 POL(U101'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U102'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U103'(x_1)) = x_1 64.49/17.49 POL(U11'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U111'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U112'(x_1)) = x_1 64.49/17.49 POL(U121'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U122'(x_1)) = x_1 64.49/17.49 POL(U131'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U132'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U133'(x_1)) = x_1 64.49/17.49 POL(U141'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U142'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U143'(x_1)) = x_1 64.49/17.49 POL(U151'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U152'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U153'(x_1)) = x_1 64.49/17.49 POL(U161'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U171'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U181'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U191'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U201'(x_1, x_2, x_3, x_4)) = x_1 + x_2 + x_3 + x_4 64.49/17.49 POL(U202'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U21'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U211'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U221'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U31'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U41'(x_1, x_2, x_3)) = x_2 + x_3 64.49/17.49 POL(U42'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U43'(x_1)) = x_1 64.49/17.49 POL(U51'(x_1, x_2, x_3)) = x_1 + x_2 + x_3 64.49/17.49 POL(U52'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U53'(x_1)) = x_1 64.49/17.49 POL(U61'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U62'(x_1)) = x_1 64.49/17.49 POL(U71'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U72'(x_1)) = x_1 64.49/17.49 POL(U81'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U82'(x_1)) = x_1 64.49/17.49 POL(U91'(x_1, x_2)) = x_1 + x_2 64.49/17.49 POL(U92'(x_1)) = x_1 64.49/17.49 POL(c(x_1)) = x_1 64.49/17.49 POL(c1(x_1)) = x_1 64.49/17.49 POL(c10(x_1)) = x_1 64.49/17.49 POL(c100(x_1)) = x_1 64.49/17.49 POL(c101(x_1)) = x_1 64.49/17.49 POL(c102(x_1)) = x_1 64.49/17.49 POL(c103(x_1)) = x_1 64.49/17.49 POL(c104(x_1)) = x_1 64.49/17.49 POL(c105(x_1)) = x_1 64.49/17.49 POL(c106(x_1)) = x_1 64.49/17.49 POL(c107(x_1)) = x_1 64.49/17.49 POL(c108(x_1)) = x_1 64.49/17.49 POL(c109(x_1)) = x_1 64.49/17.49 POL(c11(x_1)) = x_1 64.49/17.49 POL(c110(x_1)) = x_1 64.49/17.49 POL(c111(x_1)) = x_1 64.49/17.49 POL(c112(x_1)) = x_1 64.49/17.49 POL(c116(x_1)) = x_1 64.49/17.49 POL(c117(x_1)) = x_1 64.49/17.49 POL(c118(x_1)) = x_1 64.49/17.49 POL(c119(x_1)) = x_1 64.49/17.49 POL(c12(x_1)) = x_1 64.49/17.49 POL(c120(x_1)) = x_1 64.49/17.49 POL(c121(x_1)) = x_1 64.49/17.49 POL(c122(x_1)) = x_1 64.49/17.49 POL(c13(x_1)) = x_1 64.49/17.49 POL(c14(x_1)) = x_1 64.49/17.49 POL(c15(x_1)) = x_1 64.49/17.49 POL(c16(x_1)) = x_1 64.49/17.49 POL(c17(x_1)) = x_1 64.49/17.49 POL(c18(x_1)) = x_1 64.49/17.49 POL(c19(x_1)) = x_1 64.49/17.49 POL(c2(x_1)) = x_1 64.49/17.49 POL(c20(x_1)) = x_1 64.49/17.49 POL(c21(x_1)) = x_1 64.49/17.49 POL(c22(x_1)) = x_1 64.49/17.49 POL(c23(x_1)) = x_1 64.49/17.49 POL(c24(x_1)) = x_1 64.49/17.49 POL(c25(x_1)) = x_1 64.49/17.49 POL(c26(x_1)) = x_1 64.49/17.49 POL(c27(x_1)) = x_1 64.49/17.49 POL(c28(x_1)) = x_1 64.49/17.49 POL(c29(x_1)) = x_1 64.49/17.49 POL(c3(x_1)) = x_1 64.49/17.49 POL(c30(x_1)) = x_1 64.49/17.49 POL(c31(x_1)) = x_1 64.49/17.49 POL(c32(x_1)) = x_1 64.49/17.49 POL(c33(x_1)) = x_1 64.49/17.49 POL(c34(x_1)) = x_1 64.49/17.49 POL(c35(x_1)) = x_1 64.49/17.49 POL(c36(x_1)) = x_1 64.49/17.49 POL(c37(x_1)) = x_1 64.49/17.49 POL(c38(x_1)) = x_1 64.49/17.49 POL(c39(x_1)) = x_1 64.49/17.49 POL(c4(x_1)) = x_1 64.49/17.49 POL(c40(x_1)) = x_1 64.49/17.49 POL(c41(x_1)) = x_1 64.49/17.49 POL(c42(x_1)) = x_1 64.49/17.49 POL(c43(x_1)) = x_1 64.49/17.49 POL(c44(x_1)) = x_1 64.49/17.49 POL(c45(x_1)) = x_1 64.49/17.49 POL(c46(x_1)) = x_1 64.49/17.49 POL(c47(x_1)) = x_1 64.49/17.49 POL(c48(x_1)) = x_1 64.49/17.49 POL(c49(x_1)) = x_1 64.49/17.49 POL(c5(x_1)) = x_1 64.49/17.49 POL(c50(x_1)) = x_1 64.49/17.49 POL(c51(x_1)) = x_1 64.49/17.49 POL(c52(x_1)) = x_1 64.49/17.49 POL(c53(x_1)) = x_1 64.49/17.49 POL(c54(x_1)) = x_1 64.49/17.49 POL(c55(x_1)) = x_1 64.49/17.49 POL(c56(x_1)) = x_1 64.49/17.49 POL(c57(x_1)) = x_1 64.49/17.49 POL(c58(x_1)) = x_1 64.49/17.49 POL(c59(x_1)) = x_1 64.49/17.49 POL(c6(x_1)) = x_1 64.49/17.49 POL(c60(x_1)) = x_1 64.49/17.49 POL(c61(x_1)) = x_1 64.49/17.49 POL(c62(x_1)) = x_1 64.49/17.49 POL(c63(x_1)) = x_1 64.49/17.49 POL(c64(x_1)) = x_1 64.49/17.49 POL(c65(x_1)) = x_1 64.49/17.49 POL(c66(x_1)) = x_1 64.49/17.49 POL(c67(x_1)) = x_1 64.49/17.49 POL(c68(x_1)) = x_1 64.49/17.49 POL(c69(x_1)) = x_1 64.49/17.49 POL(c7(x_1)) = x_1 64.49/17.49 POL(c70(x_1)) = x_1 64.49/17.49 POL(c71(x_1)) = x_1 64.49/17.49 POL(c72(x_1)) = x_1 64.49/17.49 POL(c73(x_1)) = x_1 64.49/17.49 POL(c74(x_1)) = x_1 64.49/17.49 POL(c75(x_1)) = x_1 64.49/17.49 POL(c76(x_1)) = x_1 64.49/17.49 POL(c77(x_1)) = x_1 64.49/17.49 POL(c78(x_1)) = x_1 64.49/17.49 POL(c79(x_1)) = x_1 64.49/17.49 POL(c8(x_1)) = x_1 64.49/17.49 POL(c80(x_1)) = x_1 64.49/17.49 POL(c81(x_1)) = x_1 64.49/17.49 POL(c82(x_1)) = x_1 64.49/17.49 POL(c83(x_1)) = x_1 64.49/17.49 POL(c84(x_1)) = x_1 64.49/17.49 POL(c85(x_1)) = x_1 64.49/17.49 POL(c86(x_1)) = x_1 64.49/17.49 POL(c87(x_1)) = x_1 64.49/17.49 POL(c88(x_1)) = x_1 64.49/17.49 POL(c89(x_1)) = x_1 64.49/17.49 POL(c9(x_1)) = x_1 64.49/17.49 POL(c90(x_1)) = x_1 64.49/17.49 POL(c91(x_1)) = x_1 64.49/17.49 POL(c92(x_1)) = x_1 64.49/17.49 POL(c93(x_1)) = x_1 64.49/17.49 POL(c94(x_1)) = x_1 64.49/17.49 POL(c95(x_1)) = x_1 64.49/17.49 POL(c96(x_1)) = x_1 64.49/17.49 POL(c97(x_1)) = x_1 64.49/17.49 POL(c98(x_1)) = x_1 64.49/17.49 POL(c99(x_1)) = x_1 64.49/17.49 POL(mark(x_1)) = [1] + x_1 64.49/17.49 POL(nil) = [1] 64.49/17.49 POL(ok(x_1)) = x_1 64.49/17.49 POL(proper(x_1)) = x_1 64.49/17.49 POL(tt) = [1] 64.49/17.49 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (16) 64.49/17.49 Obligation: 64.49/17.49 Complexity Dependency Tuples Problem 64.49/17.49 64.49/17.49 Rules: 64.49/17.49 proper(tt) -> ok(tt) 64.49/17.49 proper(nil) -> ok(nil) 64.49/17.49 proper(0) -> ok(0) 64.49/17.49 Tuples: 64.49/17.49 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.49 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.49 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.49 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.49 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.49 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.49 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.49 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.49 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.49 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.49 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.49 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.49 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.49 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.49 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.49 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.49 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.49 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.49 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.49 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.49 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.49 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.49 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.49 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.49 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.49 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.49 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.49 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.49 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.49 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.49 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.49 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.49 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.49 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.49 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.49 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.49 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.49 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.49 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.49 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.49 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.49 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.49 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.49 S(mark(z0)) -> c45(S(z0)) 64.49/17.49 S(ok(z0)) -> c46(S(z0)) 64.49/17.49 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.49 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.49 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.49 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.49 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.49 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.49 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.49 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.49 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.49 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.49 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.49 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.49 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.49 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.49 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.49 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.49 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.49 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.49 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.49 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.49 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.49 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.49 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.49 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.49 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.49 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.49 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.49 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.49 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.49 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.49 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.49 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.49 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.49 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.49 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.49 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.49 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.49 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.49 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.49 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.49 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.49 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.49 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.49 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.49 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.49 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.49 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.49 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.49 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.49 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.49 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.49 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.49 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.49 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.49 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.49 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.49 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.49 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.49 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.49 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.49 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.49 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.49 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.49 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.49 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.49 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.49 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.49 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.49 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.49 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 S tuples:none 64.49/17.49 K tuples: 64.49/17.49 U101'(mark(z0), z1, z2) -> c(U101'(z0, z1, z2)) 64.49/17.49 U101'(ok(z0), ok(z1), ok(z2)) -> c1(U101'(z0, z1, z2)) 64.49/17.49 U102'(mark(z0), z1) -> c2(U102'(z0, z1)) 64.49/17.49 U102'(ok(z0), ok(z1)) -> c3(U102'(z0, z1)) 64.49/17.49 U103'(mark(z0)) -> c4(U103'(z0)) 64.49/17.49 U103'(ok(z0)) -> c5(U103'(z0)) 64.49/17.49 U11'(mark(z0), z1, z2) -> c6(U11'(z0, z1, z2)) 64.49/17.49 U11'(ok(z0), ok(z1), ok(z2)) -> c7(U11'(z0, z1, z2)) 64.49/17.49 SND(mark(z0)) -> c8(SND(z0)) 64.49/17.49 SND(ok(z0)) -> c9(SND(z0)) 64.49/17.49 SPLITAT(mark(z0), z1) -> c10(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(z0, mark(z1)) -> c11(SPLITAT(z0, z1)) 64.49/17.49 SPLITAT(ok(z0), ok(z1)) -> c12(SPLITAT(z0, z1)) 64.49/17.49 U111'(mark(z0), z1) -> c13(U111'(z0, z1)) 64.49/17.49 U111'(ok(z0), ok(z1)) -> c14(U111'(z0, z1)) 64.49/17.49 U112'(mark(z0)) -> c15(U112'(z0)) 64.49/17.49 U112'(ok(z0)) -> c16(U112'(z0)) 64.49/17.49 U121'(mark(z0), z1) -> c17(U121'(z0, z1)) 64.49/17.49 U121'(ok(z0), ok(z1)) -> c18(U121'(z0, z1)) 64.49/17.49 U122'(mark(z0)) -> c19(U122'(z0)) 64.49/17.49 U122'(ok(z0)) -> c20(U122'(z0)) 64.49/17.49 U131'(mark(z0), z1, z2) -> c21(U131'(z0, z1, z2)) 64.49/17.49 U131'(ok(z0), ok(z1), ok(z2)) -> c22(U131'(z0, z1, z2)) 64.49/17.49 U132'(mark(z0), z1) -> c23(U132'(z0, z1)) 64.49/17.49 U132'(ok(z0), ok(z1)) -> c24(U132'(z0, z1)) 64.49/17.49 U133'(mark(z0)) -> c25(U133'(z0)) 64.49/17.49 U133'(ok(z0)) -> c26(U133'(z0)) 64.49/17.49 U141'(mark(z0), z1, z2) -> c27(U141'(z0, z1, z2)) 64.49/17.49 U141'(ok(z0), ok(z1), ok(z2)) -> c28(U141'(z0, z1, z2)) 64.49/17.49 U142'(mark(z0), z1) -> c29(U142'(z0, z1)) 64.49/17.49 U142'(ok(z0), ok(z1)) -> c30(U142'(z0, z1)) 64.49/17.49 U143'(mark(z0)) -> c31(U143'(z0)) 64.49/17.49 U143'(ok(z0)) -> c32(U143'(z0)) 64.49/17.49 U151'(mark(z0), z1, z2) -> c33(U151'(z0, z1, z2)) 64.49/17.49 U151'(ok(z0), ok(z1), ok(z2)) -> c34(U151'(z0, z1, z2)) 64.49/17.49 U152'(mark(z0), z1) -> c35(U152'(z0, z1)) 64.49/17.49 U152'(ok(z0), ok(z1)) -> c36(U152'(z0, z1)) 64.49/17.49 U153'(mark(z0)) -> c37(U153'(z0)) 64.49/17.49 U153'(ok(z0)) -> c38(U153'(z0)) 64.49/17.49 U161'(mark(z0), z1) -> c39(U161'(z0, z1)) 64.49/17.49 U161'(ok(z0), ok(z1)) -> c40(U161'(z0, z1)) 64.49/17.49 CONS(mark(z0), z1) -> c41(CONS(z0, z1)) 64.49/17.49 CONS(ok(z0), ok(z1)) -> c42(CONS(z0, z1)) 64.49/17.49 NATSFROM(mark(z0)) -> c43(NATSFROM(z0)) 64.49/17.49 NATSFROM(ok(z0)) -> c44(NATSFROM(z0)) 64.49/17.49 S(mark(z0)) -> c45(S(z0)) 64.49/17.49 S(ok(z0)) -> c46(S(z0)) 64.49/17.49 U171'(mark(z0), z1, z2) -> c47(U171'(z0, z1, z2)) 64.49/17.49 U171'(ok(z0), ok(z1), ok(z2)) -> c48(U171'(z0, z1, z2)) 64.49/17.49 HEAD(mark(z0)) -> c49(HEAD(z0)) 64.49/17.49 HEAD(ok(z0)) -> c50(HEAD(z0)) 64.49/17.49 AFTERNTH(mark(z0), z1) -> c51(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(z0, mark(z1)) -> c52(AFTERNTH(z0, z1)) 64.49/17.49 AFTERNTH(ok(z0), ok(z1)) -> c53(AFTERNTH(z0, z1)) 64.49/17.49 U181'(mark(z0), z1) -> c54(U181'(z0, z1)) 64.49/17.49 U181'(ok(z0), ok(z1)) -> c55(U181'(z0, z1)) 64.49/17.49 U191'(mark(z0), z1) -> c56(U191'(z0, z1)) 64.49/17.49 U191'(ok(z0), ok(z1)) -> c57(U191'(z0, z1)) 64.49/17.49 PAIR(mark(z0), z1) -> c58(PAIR(z0, z1)) 64.49/17.49 PAIR(z0, mark(z1)) -> c59(PAIR(z0, z1)) 64.49/17.49 PAIR(ok(z0), ok(z1)) -> c60(PAIR(z0, z1)) 64.49/17.49 U201'(mark(z0), z1, z2, z3) -> c61(U201'(z0, z1, z2, z3)) 64.49/17.49 U201'(ok(z0), ok(z1), ok(z2), ok(z3)) -> c62(U201'(z0, z1, z2, z3)) 64.49/17.49 U202'(mark(z0), z1) -> c63(U202'(z0, z1)) 64.49/17.49 U202'(ok(z0), ok(z1)) -> c64(U202'(z0, z1)) 64.49/17.49 U21'(mark(z0), z1) -> c65(U21'(z0, z1)) 64.49/17.49 U21'(ok(z0), ok(z1)) -> c66(U21'(z0, z1)) 64.49/17.49 U211'(mark(z0), z1) -> c67(U211'(z0, z1)) 64.49/17.49 U211'(ok(z0), ok(z1)) -> c68(U211'(z0, z1)) 64.49/17.49 U221'(mark(z0), z1, z2) -> c69(U221'(z0, z1, z2)) 64.49/17.49 U221'(ok(z0), ok(z1), ok(z2)) -> c70(U221'(z0, z1, z2)) 64.49/17.49 FST(mark(z0)) -> c71(FST(z0)) 64.49/17.49 FST(ok(z0)) -> c72(FST(z0)) 64.49/17.49 U31'(mark(z0), z1) -> c73(U31'(z0, z1)) 64.49/17.49 U31'(ok(z0), ok(z1)) -> c74(U31'(z0, z1)) 64.49/17.49 U41'(mark(z0), z1, z2) -> c75(U41'(z0, z1, z2)) 64.49/17.49 U41'(ok(z0), ok(z1), ok(z2)) -> c76(U41'(z0, z1, z2)) 64.49/17.49 U42'(mark(z0), z1) -> c77(U42'(z0, z1)) 64.49/17.49 U42'(ok(z0), ok(z1)) -> c78(U42'(z0, z1)) 64.49/17.49 U43'(mark(z0)) -> c79(U43'(z0)) 64.49/17.49 U43'(ok(z0)) -> c80(U43'(z0)) 64.49/17.49 U51'(mark(z0), z1, z2) -> c81(U51'(z0, z1, z2)) 64.49/17.49 U51'(ok(z0), ok(z1), ok(z2)) -> c82(U51'(z0, z1, z2)) 64.49/17.49 U52'(mark(z0), z1) -> c83(U52'(z0, z1)) 64.49/17.49 U52'(ok(z0), ok(z1)) -> c84(U52'(z0, z1)) 64.49/17.49 U53'(mark(z0)) -> c85(U53'(z0)) 64.49/17.49 U53'(ok(z0)) -> c86(U53'(z0)) 64.49/17.49 U61'(mark(z0), z1) -> c87(U61'(z0, z1)) 64.49/17.49 U61'(ok(z0), ok(z1)) -> c88(U61'(z0, z1)) 64.49/17.49 U62'(mark(z0)) -> c89(U62'(z0)) 64.49/17.49 U62'(ok(z0)) -> c90(U62'(z0)) 64.49/17.49 U71'(mark(z0), z1) -> c91(U71'(z0, z1)) 64.49/17.49 U71'(ok(z0), ok(z1)) -> c92(U71'(z0, z1)) 64.49/17.49 U72'(mark(z0)) -> c93(U72'(z0)) 64.49/17.49 U72'(ok(z0)) -> c94(U72'(z0)) 64.49/17.49 U81'(mark(z0), z1) -> c95(U81'(z0, z1)) 64.49/17.49 U81'(ok(z0), ok(z1)) -> c96(U81'(z0, z1)) 64.49/17.49 U82'(mark(z0)) -> c97(U82'(z0)) 64.49/17.49 U82'(ok(z0)) -> c98(U82'(z0)) 64.49/17.49 U91'(mark(z0), z1) -> c99(U91'(z0, z1)) 64.49/17.49 U91'(ok(z0), ok(z1)) -> c100(U91'(z0, z1)) 64.49/17.49 U92'(mark(z0)) -> c101(U92'(z0)) 64.49/17.49 U92'(ok(z0)) -> c102(U92'(z0)) 64.49/17.49 AND(mark(z0), z1) -> c103(AND(z0, z1)) 64.49/17.49 AND(ok(z0), ok(z1)) -> c104(AND(z0, z1)) 64.49/17.49 TAIL(mark(z0)) -> c105(TAIL(z0)) 64.49/17.49 TAIL(ok(z0)) -> c106(TAIL(z0)) 64.49/17.49 TAKE(mark(z0), z1) -> c107(TAKE(z0, z1)) 64.49/17.49 TAKE(z0, mark(z1)) -> c108(TAKE(z0, z1)) 64.49/17.49 TAKE(ok(z0), ok(z1)) -> c109(TAKE(z0, z1)) 64.49/17.49 SEL(mark(z0), z1) -> c110(SEL(z0, z1)) 64.49/17.49 SEL(z0, mark(z1)) -> c111(SEL(z0, z1)) 64.49/17.49 SEL(ok(z0), ok(z1)) -> c112(SEL(z0, z1)) 64.49/17.49 ISNATURAL(ok(z0)) -> c116(ISNATURAL(z0)) 64.49/17.49 ISLNAT(ok(z0)) -> c117(ISLNAT(z0)) 64.49/17.49 ISPLNAT(ok(z0)) -> c118(ISPLNAT(z0)) 64.49/17.49 ISNATURALKIND(ok(z0)) -> c119(ISNATURALKIND(z0)) 64.49/17.49 ISLNATKIND(ok(z0)) -> c120(ISLNATKIND(z0)) 64.49/17.49 ISPLNATKIND(ok(z0)) -> c121(ISPLNATKIND(z0)) 64.49/17.49 TOP(mark(z0)) -> c122(TOP(proper(z0))) 64.49/17.49 Defined Rule Symbols: proper_1 64.49/17.49 64.49/17.49 Defined Pair Symbols: U101'_3, U102'_2, U103'_1, U11'_3, SND_1, SPLITAT_2, U111'_2, U112'_1, U121'_2, U122'_1, U131'_3, U132'_2, U133'_1, U141'_3, U142'_2, U143'_1, U151'_3, U152'_2, U153'_1, U161'_2, CONS_2, NATSFROM_1, S_1, U171'_3, HEAD_1, AFTERNTH_2, U181'_2, U191'_2, PAIR_2, U201'_4, U202'_2, U21'_2, U211'_2, U221'_3, FST_1, U31'_2, U41'_3, U42'_2, U43'_1, U51'_3, U52'_2, U53'_1, U61'_2, U62'_1, U71'_2, U72'_1, U81'_2, U82'_1, U91'_2, U92'_1, AND_2, TAIL_1, TAKE_2, SEL_2, ISNATURAL_1, ISLNAT_1, ISPLNAT_1, ISNATURALKIND_1, ISLNATKIND_1, ISPLNATKIND_1, TOP_1 64.49/17.49 64.49/17.49 Compound Symbols: c_1, c1_1, c2_1, c3_1, c4_1, c5_1, c6_1, c7_1, c8_1, c9_1, c10_1, c11_1, c12_1, c13_1, c14_1, c15_1, c16_1, c17_1, c18_1, c19_1, c20_1, c21_1, c22_1, c23_1, c24_1, c25_1, c26_1, c27_1, c28_1, c29_1, c30_1, c31_1, c32_1, c33_1, c34_1, c35_1, c36_1, c37_1, c38_1, c39_1, c40_1, c41_1, c42_1, c43_1, c44_1, c45_1, c46_1, c47_1, c48_1, c49_1, c50_1, c51_1, c52_1, c53_1, c54_1, c55_1, c56_1, c57_1, c58_1, c59_1, c60_1, c61_1, c62_1, c63_1, c64_1, c65_1, c66_1, c67_1, c68_1, c69_1, c70_1, c71_1, c72_1, c73_1, c74_1, c75_1, c76_1, c77_1, c78_1, c79_1, c80_1, c81_1, c82_1, c83_1, c84_1, c85_1, c86_1, c87_1, c88_1, c89_1, c90_1, c91_1, c92_1, c93_1, c94_1, c95_1, c96_1, c97_1, c98_1, c99_1, c100_1, c101_1, c102_1, c103_1, c104_1, c105_1, c106_1, c107_1, c108_1, c109_1, c110_1, c111_1, c112_1, c116_1, c117_1, c118_1, c119_1, c120_1, c121_1, c122_1 64.49/17.49 64.49/17.49 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (17) SIsEmptyProof (BOTH BOUNDS(ID, ID)) 64.49/17.49 The set S is empty 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (18) 64.49/17.49 BOUNDS(1, 1) 64.49/17.49 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (19) RenamingProof (BOTH BOUNDS(ID, ID)) 64.49/17.49 Renamed function symbols to avoid clashes with predefined symbol. 64.49/17.49 ---------------------------------------- 64.49/17.49 64.49/17.49 (20) 64.49/17.49 Obligation: 64.49/17.49 The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF). 64.49/17.49 64.49/17.49 64.49/17.49 The TRS R consists of the following rules: 64.49/17.49 64.49/17.49 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.49/17.49 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.49/17.49 active(U103(tt)) -> mark(tt) 64.49/17.49 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.49/17.49 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.49/17.49 active(U112(tt)) -> mark(tt) 64.49/17.49 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.49/17.49 active(U122(tt)) -> mark(tt) 64.49/17.49 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.49/17.49 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.49/17.49 active(U133(tt)) -> mark(tt) 64.49/17.49 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.49/17.49 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.49/17.49 active(U143(tt)) -> mark(tt) 64.49/17.49 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.49/17.49 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.49/17.49 active(U153(tt)) -> mark(tt) 64.49/17.49 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.49/17.49 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.49/17.49 active(U181(tt, Y)) -> mark(Y) 64.49/17.49 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.49/17.49 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.49/17.49 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.49/17.49 active(U21(tt, X)) -> mark(X) 64.49/17.49 active(U211(tt, XS)) -> mark(XS) 64.49/17.49 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.49/17.49 active(U31(tt, N)) -> mark(N) 64.49/17.49 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.49/17.49 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.49/17.49 active(U43(tt)) -> mark(tt) 64.49/17.49 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.49/17.49 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.49/17.49 active(U53(tt)) -> mark(tt) 64.49/17.49 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.49/17.49 active(U62(tt)) -> mark(tt) 64.49/17.49 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.49/17.49 active(U72(tt)) -> mark(tt) 64.49/17.49 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.49/17.49 active(U82(tt)) -> mark(tt) 64.49/17.49 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.49/17.49 active(U92(tt)) -> mark(tt) 64.49/17.49 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.49 active(and(tt, X)) -> mark(X) 64.49/17.49 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.49/17.49 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.49/17.49 active(isLNat(nil)) -> mark(tt) 64.49/17.49 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.49 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.49 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.49/17.49 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.49/17.49 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.49/17.49 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.49/17.49 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.49 active(isLNatKind(nil)) -> mark(tt) 64.49/17.49 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.49 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.49 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.49/17.49 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.49/17.49 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.49/17.49 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.49/17.49 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.49 active(isNatural(0')) -> mark(tt) 64.49/17.49 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.49/17.49 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.49/17.49 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.49 active(isNaturalKind(0')) -> mark(tt) 64.49/17.49 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.49/17.49 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.49/17.49 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.49 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.49 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.49 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.49/17.49 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.49 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.49/17.49 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.49 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.49/17.49 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.49/17.49 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.49/17.49 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.49/17.49 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.49 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.49/17.49 active(U102(X1, X2)) -> U102(active(X1), X2) 64.49/17.49 active(U103(X)) -> U103(active(X)) 64.49/17.49 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.49/17.49 active(snd(X)) -> snd(active(X)) 64.49/17.49 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.49/17.49 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.49/17.49 active(U111(X1, X2)) -> U111(active(X1), X2) 64.49/17.49 active(U112(X)) -> U112(active(X)) 64.49/17.49 active(U121(X1, X2)) -> U121(active(X1), X2) 64.49/17.49 active(U122(X)) -> U122(active(X)) 64.49/17.49 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.49/17.49 active(U132(X1, X2)) -> U132(active(X1), X2) 64.49/17.49 active(U133(X)) -> U133(active(X)) 64.49/17.49 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.49/17.49 active(U142(X1, X2)) -> U142(active(X1), X2) 64.49/17.49 active(U143(X)) -> U143(active(X)) 64.49/17.49 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.49/17.49 active(U152(X1, X2)) -> U152(active(X1), X2) 64.49/17.49 active(U153(X)) -> U153(active(X)) 64.49/17.49 active(U161(X1, X2)) -> U161(active(X1), X2) 64.49/17.49 active(cons(X1, X2)) -> cons(active(X1), X2) 64.49/17.49 active(natsFrom(X)) -> natsFrom(active(X)) 64.49/17.49 active(s(X)) -> s(active(X)) 64.49/17.49 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.49/17.49 active(head(X)) -> head(active(X)) 64.49/17.49 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.49/17.49 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.49/17.49 active(U181(X1, X2)) -> U181(active(X1), X2) 64.49/17.49 active(U191(X1, X2)) -> U191(active(X1), X2) 64.49/17.49 active(pair(X1, X2)) -> pair(active(X1), X2) 64.49/17.49 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.49/17.49 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.49/17.49 active(U202(X1, X2)) -> U202(active(X1), X2) 64.49/17.49 active(U21(X1, X2)) -> U21(active(X1), X2) 64.49/17.49 active(U211(X1, X2)) -> U211(active(X1), X2) 64.49/17.49 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.49/17.49 active(fst(X)) -> fst(active(X)) 64.49/17.49 active(U31(X1, X2)) -> U31(active(X1), X2) 64.49/17.49 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.49/17.49 active(U42(X1, X2)) -> U42(active(X1), X2) 64.49/17.49 active(U43(X)) -> U43(active(X)) 64.49/17.49 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.49/17.49 active(U52(X1, X2)) -> U52(active(X1), X2) 64.49/17.49 active(U53(X)) -> U53(active(X)) 64.49/17.49 active(U61(X1, X2)) -> U61(active(X1), X2) 64.49/17.49 active(U62(X)) -> U62(active(X)) 64.49/17.49 active(U71(X1, X2)) -> U71(active(X1), X2) 64.49/17.49 active(U72(X)) -> U72(active(X)) 64.49/17.49 active(U81(X1, X2)) -> U81(active(X1), X2) 64.49/17.49 active(U82(X)) -> U82(active(X)) 64.49/17.49 active(U91(X1, X2)) -> U91(active(X1), X2) 64.49/17.49 active(U92(X)) -> U92(active(X)) 64.49/17.49 active(and(X1, X2)) -> and(active(X1), X2) 64.49/17.49 active(tail(X)) -> tail(active(X)) 64.49/17.49 active(take(X1, X2)) -> take(active(X1), X2) 64.49/17.49 active(take(X1, X2)) -> take(X1, active(X2)) 64.49/17.49 active(sel(X1, X2)) -> sel(active(X1), X2) 64.49/17.49 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.49/17.49 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.49/17.49 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.49/17.49 U103(mark(X)) -> mark(U103(X)) 64.49/17.49 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.49/17.49 snd(mark(X)) -> mark(snd(X)) 64.49/17.49 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.49/17.49 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.49/17.49 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.49/17.49 U112(mark(X)) -> mark(U112(X)) 64.49/17.49 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.49/17.49 U122(mark(X)) -> mark(U122(X)) 64.49/17.49 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.49/17.49 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.49/17.49 U133(mark(X)) -> mark(U133(X)) 64.49/17.49 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.49/17.49 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.49/17.49 U143(mark(X)) -> mark(U143(X)) 64.49/17.49 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.49/17.49 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.49/17.49 U153(mark(X)) -> mark(U153(X)) 64.49/17.49 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.49/17.49 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.49/17.49 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.49/17.49 s(mark(X)) -> mark(s(X)) 64.49/17.49 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.49/17.49 head(mark(X)) -> mark(head(X)) 64.49/17.49 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.49/17.49 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.49/17.49 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.49/17.49 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.49/17.49 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.49/17.49 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.49/17.49 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.49/17.49 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.49/17.49 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.49/17.49 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.49/17.49 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.49/17.49 fst(mark(X)) -> mark(fst(X)) 64.49/17.49 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.49/17.49 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.49/17.49 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.49/17.49 U43(mark(X)) -> mark(U43(X)) 64.49/17.49 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.49/17.49 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.49/17.49 U53(mark(X)) -> mark(U53(X)) 64.49/17.49 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.49/17.49 U62(mark(X)) -> mark(U62(X)) 64.49/17.49 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.49/17.49 U72(mark(X)) -> mark(U72(X)) 64.49/17.49 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.49/17.49 U82(mark(X)) -> mark(U82(X)) 64.49/17.49 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.49/17.49 U92(mark(X)) -> mark(U92(X)) 64.49/17.49 and(mark(X1), X2) -> mark(and(X1, X2)) 64.49/17.49 tail(mark(X)) -> mark(tail(X)) 64.49/17.49 take(mark(X1), X2) -> mark(take(X1, X2)) 64.49/17.49 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.49/17.49 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.49/17.49 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.49/17.49 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(tt) -> ok(tt) 64.49/17.49 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.49/17.49 proper(isNatural(X)) -> isNatural(proper(X)) 64.49/17.49 proper(U103(X)) -> U103(proper(X)) 64.49/17.49 proper(isLNat(X)) -> isLNat(proper(X)) 64.49/17.49 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(snd(X)) -> snd(proper(X)) 64.49/17.49 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.49/17.49 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.49/17.49 proper(U112(X)) -> U112(proper(X)) 64.49/17.49 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.49/17.49 proper(U122(X)) -> U122(proper(X)) 64.49/17.49 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.49/17.49 proper(U133(X)) -> U133(proper(X)) 64.49/17.49 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.49/17.49 proper(U143(X)) -> U143(proper(X)) 64.49/17.49 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.49/17.49 proper(U153(X)) -> U153(proper(X)) 64.49/17.49 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.49/17.49 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.49/17.49 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.49/17.49 proper(s(X)) -> s(proper(X)) 64.49/17.49 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(head(X)) -> head(proper(X)) 64.49/17.49 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.49/17.49 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.49/17.49 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.49/17.49 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.49/17.49 proper(nil) -> ok(nil) 64.49/17.49 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.49/17.49 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.49/17.49 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.49/17.49 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.49/17.49 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(fst(X)) -> fst(proper(X)) 64.49/17.49 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.49/17.49 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.49/17.49 proper(U43(X)) -> U43(proper(X)) 64.49/17.49 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.49/17.49 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.49/17.49 proper(U53(X)) -> U53(proper(X)) 64.49/17.49 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.49/17.49 proper(U62(X)) -> U62(proper(X)) 64.49/17.49 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.49/17.49 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.49/17.49 proper(U72(X)) -> U72(proper(X)) 64.49/17.49 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.49/17.49 proper(U82(X)) -> U82(proper(X)) 64.49/17.49 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.49/17.49 proper(U92(X)) -> U92(proper(X)) 64.49/17.49 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.49/17.49 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.49/17.49 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.49/17.49 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.49/17.49 proper(tail(X)) -> tail(proper(X)) 64.49/17.49 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.49/17.49 proper(0') -> ok(0') 64.49/17.49 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.49/17.49 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.49/17.49 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.49/17.49 isNatural(ok(X)) -> ok(isNatural(X)) 64.49/17.49 U103(ok(X)) -> ok(U103(X)) 64.49/17.49 isLNat(ok(X)) -> ok(isLNat(X)) 64.49/17.49 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.49/17.49 snd(ok(X)) -> ok(snd(X)) 64.49/17.49 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.49/17.49 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.49/17.49 U112(ok(X)) -> ok(U112(X)) 64.49/17.49 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.49/17.49 U122(ok(X)) -> ok(U122(X)) 64.49/17.49 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.49/17.49 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.49/17.49 U133(ok(X)) -> ok(U133(X)) 64.49/17.49 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.49/17.49 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.49/17.49 U143(ok(X)) -> ok(U143(X)) 64.49/17.49 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.49/17.49 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.49/17.49 U153(ok(X)) -> ok(U153(X)) 64.49/17.49 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.49/17.49 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.49/17.49 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.49/17.49 s(ok(X)) -> ok(s(X)) 64.49/17.49 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.49/17.49 head(ok(X)) -> ok(head(X)) 64.49/17.49 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.49/17.49 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.49/17.49 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.49/17.49 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.49/17.49 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.49/17.49 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.49/17.49 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.49/17.49 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.49/17.49 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.49/17.49 fst(ok(X)) -> ok(fst(X)) 64.49/17.49 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.49/17.49 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.49/17.49 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.49/17.49 U43(ok(X)) -> ok(U43(X)) 64.49/17.50 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.49/17.50 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.49/17.50 U53(ok(X)) -> ok(U53(X)) 64.49/17.50 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.49/17.50 U62(ok(X)) -> ok(U62(X)) 64.49/17.50 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.49/17.50 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.49/17.50 U72(ok(X)) -> ok(U72(X)) 64.49/17.50 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.49/17.50 U82(ok(X)) -> ok(U82(X)) 64.49/17.50 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.49/17.50 U92(ok(X)) -> ok(U92(X)) 64.49/17.50 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.49/17.50 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.49/17.50 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.49/17.50 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.49/17.50 tail(ok(X)) -> ok(tail(X)) 64.49/17.50 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.49/17.50 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.49/17.50 top(mark(X)) -> top(proper(X)) 64.49/17.50 top(ok(X)) -> top(active(X)) 64.49/17.50 64.49/17.50 S is empty. 64.49/17.50 Rewrite Strategy: FULL 64.49/17.50 ---------------------------------------- 64.49/17.50 64.49/17.50 (21) TypeInferenceProof (BOTH BOUNDS(ID, ID)) 64.49/17.50 Infered types. 64.49/17.50 ---------------------------------------- 64.49/17.50 64.49/17.50 (22) 64.49/17.50 Obligation: 64.49/17.50 TRS: 64.49/17.50 Rules: 64.49/17.50 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.49/17.50 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.49/17.50 active(U103(tt)) -> mark(tt) 64.49/17.50 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.49/17.50 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.49/17.50 active(U112(tt)) -> mark(tt) 64.49/17.50 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.49/17.50 active(U122(tt)) -> mark(tt) 64.49/17.50 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.49/17.50 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.49/17.50 active(U133(tt)) -> mark(tt) 64.49/17.50 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.49/17.50 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.49/17.50 active(U143(tt)) -> mark(tt) 64.49/17.50 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.49/17.50 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.49/17.50 active(U153(tt)) -> mark(tt) 64.49/17.50 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.49/17.50 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.49/17.50 active(U181(tt, Y)) -> mark(Y) 64.49/17.50 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.49/17.50 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.49/17.50 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.49/17.51 active(U21(tt, X)) -> mark(X) 64.49/17.51 active(U211(tt, XS)) -> mark(XS) 64.49/17.51 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.49/17.51 active(U31(tt, N)) -> mark(N) 64.49/17.51 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.49/17.51 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.49/17.51 active(U43(tt)) -> mark(tt) 64.49/17.51 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.49/17.51 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.49/17.51 active(U53(tt)) -> mark(tt) 64.49/17.51 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.49/17.51 active(U62(tt)) -> mark(tt) 64.49/17.51 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.49/17.51 active(U72(tt)) -> mark(tt) 64.49/17.51 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.49/17.51 active(U82(tt)) -> mark(tt) 64.49/17.51 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.49/17.51 active(U92(tt)) -> mark(tt) 64.49/17.51 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(and(tt, X)) -> mark(X) 64.49/17.51 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.49/17.51 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.49/17.51 active(isLNat(nil)) -> mark(tt) 64.49/17.51 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.49/17.51 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.49/17.51 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.49/17.51 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.49/17.51 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNatKind(nil)) -> mark(tt) 64.49/17.51 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.49/17.51 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.49/17.51 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.49/17.51 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.49/17.51 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isNatural(0')) -> mark(tt) 64.49/17.51 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.49/17.51 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.49/17.51 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isNaturalKind(0')) -> mark(tt) 64.49/17.51 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.49/17.51 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.49/17.51 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.49/17.51 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.49/17.51 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.49/17.51 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.49/17.51 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.49/17.51 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.49/17.51 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.49/17.51 active(U102(X1, X2)) -> U102(active(X1), X2) 64.49/17.51 active(U103(X)) -> U103(active(X)) 64.49/17.51 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.49/17.51 active(snd(X)) -> snd(active(X)) 64.49/17.51 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.49/17.51 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.49/17.51 active(U111(X1, X2)) -> U111(active(X1), X2) 64.49/17.51 active(U112(X)) -> U112(active(X)) 64.49/17.51 active(U121(X1, X2)) -> U121(active(X1), X2) 64.49/17.51 active(U122(X)) -> U122(active(X)) 64.49/17.51 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.49/17.51 active(U132(X1, X2)) -> U132(active(X1), X2) 64.49/17.51 active(U133(X)) -> U133(active(X)) 64.49/17.51 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.49/17.51 active(U142(X1, X2)) -> U142(active(X1), X2) 64.49/17.51 active(U143(X)) -> U143(active(X)) 64.49/17.51 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.49/17.51 active(U152(X1, X2)) -> U152(active(X1), X2) 64.49/17.51 active(U153(X)) -> U153(active(X)) 64.49/17.51 active(U161(X1, X2)) -> U161(active(X1), X2) 64.49/17.51 active(cons(X1, X2)) -> cons(active(X1), X2) 64.49/17.51 active(natsFrom(X)) -> natsFrom(active(X)) 64.49/17.51 active(s(X)) -> s(active(X)) 64.49/17.51 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.49/17.51 active(head(X)) -> head(active(X)) 64.49/17.51 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.49/17.51 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.49/17.51 active(U181(X1, X2)) -> U181(active(X1), X2) 64.49/17.51 active(U191(X1, X2)) -> U191(active(X1), X2) 64.49/17.51 active(pair(X1, X2)) -> pair(active(X1), X2) 64.49/17.51 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.49/17.51 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.49/17.51 active(U202(X1, X2)) -> U202(active(X1), X2) 64.49/17.51 active(U21(X1, X2)) -> U21(active(X1), X2) 64.49/17.51 active(U211(X1, X2)) -> U211(active(X1), X2) 64.49/17.51 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.49/17.51 active(fst(X)) -> fst(active(X)) 64.49/17.51 active(U31(X1, X2)) -> U31(active(X1), X2) 64.49/17.51 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.49/17.51 active(U42(X1, X2)) -> U42(active(X1), X2) 64.49/17.51 active(U43(X)) -> U43(active(X)) 64.49/17.51 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.49/17.51 active(U52(X1, X2)) -> U52(active(X1), X2) 64.49/17.51 active(U53(X)) -> U53(active(X)) 64.49/17.51 active(U61(X1, X2)) -> U61(active(X1), X2) 64.49/17.51 active(U62(X)) -> U62(active(X)) 64.49/17.51 active(U71(X1, X2)) -> U71(active(X1), X2) 64.49/17.51 active(U72(X)) -> U72(active(X)) 64.49/17.51 active(U81(X1, X2)) -> U81(active(X1), X2) 64.49/17.51 active(U82(X)) -> U82(active(X)) 64.49/17.51 active(U91(X1, X2)) -> U91(active(X1), X2) 64.49/17.51 active(U92(X)) -> U92(active(X)) 64.49/17.51 active(and(X1, X2)) -> and(active(X1), X2) 64.49/17.51 active(tail(X)) -> tail(active(X)) 64.49/17.51 active(take(X1, X2)) -> take(active(X1), X2) 64.49/17.51 active(take(X1, X2)) -> take(X1, active(X2)) 64.49/17.51 active(sel(X1, X2)) -> sel(active(X1), X2) 64.49/17.51 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.49/17.51 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.49/17.51 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.49/17.51 U103(mark(X)) -> mark(U103(X)) 64.49/17.51 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.49/17.51 snd(mark(X)) -> mark(snd(X)) 64.49/17.51 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.49/17.51 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.49/17.51 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.49/17.51 U112(mark(X)) -> mark(U112(X)) 64.49/17.51 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.49/17.51 U122(mark(X)) -> mark(U122(X)) 64.49/17.51 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.49/17.51 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.49/17.51 U133(mark(X)) -> mark(U133(X)) 64.49/17.51 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.49/17.51 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.49/17.51 U143(mark(X)) -> mark(U143(X)) 64.49/17.51 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.49/17.51 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.49/17.51 U153(mark(X)) -> mark(U153(X)) 64.49/17.51 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.49/17.51 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.49/17.51 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.49/17.51 s(mark(X)) -> mark(s(X)) 64.49/17.51 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.49/17.51 head(mark(X)) -> mark(head(X)) 64.49/17.51 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.49/17.51 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.49/17.51 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.49/17.51 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.49/17.51 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.49/17.51 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.49/17.51 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.49/17.51 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.49/17.51 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.49/17.51 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.49/17.51 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.49/17.51 fst(mark(X)) -> mark(fst(X)) 64.49/17.51 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.49/17.51 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.49/17.51 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.49/17.51 U43(mark(X)) -> mark(U43(X)) 64.49/17.51 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.49/17.51 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.49/17.51 U53(mark(X)) -> mark(U53(X)) 64.49/17.51 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.49/17.51 U62(mark(X)) -> mark(U62(X)) 64.49/17.51 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.49/17.51 U72(mark(X)) -> mark(U72(X)) 64.49/17.51 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.49/17.51 U82(mark(X)) -> mark(U82(X)) 64.49/17.51 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.49/17.51 U92(mark(X)) -> mark(U92(X)) 64.49/17.51 and(mark(X1), X2) -> mark(and(X1, X2)) 64.49/17.51 tail(mark(X)) -> mark(tail(X)) 64.49/17.51 take(mark(X1), X2) -> mark(take(X1, X2)) 64.49/17.51 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.49/17.51 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.49/17.51 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.49/17.51 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(tt) -> ok(tt) 64.49/17.51 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.49/17.51 proper(isNatural(X)) -> isNatural(proper(X)) 64.49/17.51 proper(U103(X)) -> U103(proper(X)) 64.49/17.51 proper(isLNat(X)) -> isLNat(proper(X)) 64.49/17.51 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(snd(X)) -> snd(proper(X)) 64.49/17.51 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.49/17.51 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.49/17.51 proper(U112(X)) -> U112(proper(X)) 64.49/17.51 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.49/17.51 proper(U122(X)) -> U122(proper(X)) 64.49/17.51 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.49/17.51 proper(U133(X)) -> U133(proper(X)) 64.49/17.51 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.49/17.51 proper(U143(X)) -> U143(proper(X)) 64.49/17.51 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.49/17.51 proper(U153(X)) -> U153(proper(X)) 64.49/17.51 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.49/17.51 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.49/17.51 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.49/17.51 proper(s(X)) -> s(proper(X)) 64.49/17.51 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(head(X)) -> head(proper(X)) 64.49/17.51 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.49/17.51 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.49/17.51 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.49/17.51 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.49/17.51 proper(nil) -> ok(nil) 64.49/17.51 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.49/17.51 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.49/17.51 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.49/17.51 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.49/17.51 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(fst(X)) -> fst(proper(X)) 64.49/17.51 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.49/17.51 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.49/17.51 proper(U43(X)) -> U43(proper(X)) 64.49/17.51 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.49/17.51 proper(U53(X)) -> U53(proper(X)) 64.49/17.51 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.49/17.51 proper(U62(X)) -> U62(proper(X)) 64.49/17.51 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.49/17.51 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.49/17.51 proper(U72(X)) -> U72(proper(X)) 64.49/17.51 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.49/17.51 proper(U82(X)) -> U82(proper(X)) 64.49/17.51 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.49/17.51 proper(U92(X)) -> U92(proper(X)) 64.49/17.51 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.49/17.51 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.49/17.51 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.49/17.51 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.49/17.51 proper(tail(X)) -> tail(proper(X)) 64.49/17.51 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.49/17.51 proper(0') -> ok(0') 64.49/17.51 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.49/17.51 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.49/17.51 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.49/17.51 isNatural(ok(X)) -> ok(isNatural(X)) 64.49/17.51 U103(ok(X)) -> ok(U103(X)) 64.49/17.51 isLNat(ok(X)) -> ok(isLNat(X)) 64.49/17.51 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.49/17.51 snd(ok(X)) -> ok(snd(X)) 64.49/17.51 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.49/17.51 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.49/17.51 U112(ok(X)) -> ok(U112(X)) 64.49/17.51 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.49/17.51 U122(ok(X)) -> ok(U122(X)) 64.49/17.51 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.49/17.51 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.49/17.51 U133(ok(X)) -> ok(U133(X)) 64.49/17.51 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.49/17.51 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.49/17.51 U143(ok(X)) -> ok(U143(X)) 64.49/17.51 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.49/17.51 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.49/17.51 U153(ok(X)) -> ok(U153(X)) 64.49/17.51 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.49/17.51 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.49/17.51 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.49/17.51 s(ok(X)) -> ok(s(X)) 64.49/17.51 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.49/17.51 head(ok(X)) -> ok(head(X)) 64.49/17.51 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.49/17.51 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.49/17.51 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.49/17.51 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.49/17.51 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.49/17.51 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.49/17.51 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.49/17.51 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.49/17.51 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.49/17.51 fst(ok(X)) -> ok(fst(X)) 64.49/17.51 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.49/17.51 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.49/17.51 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.49/17.51 U43(ok(X)) -> ok(U43(X)) 64.49/17.51 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.49/17.51 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.49/17.51 U53(ok(X)) -> ok(U53(X)) 64.49/17.51 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.49/17.51 U62(ok(X)) -> ok(U62(X)) 64.49/17.51 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.49/17.51 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.49/17.51 U72(ok(X)) -> ok(U72(X)) 64.49/17.51 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.49/17.51 U82(ok(X)) -> ok(U82(X)) 64.49/17.51 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.49/17.51 U92(ok(X)) -> ok(U92(X)) 64.49/17.51 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.49/17.51 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.49/17.51 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.49/17.51 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.49/17.51 tail(ok(X)) -> ok(tail(X)) 64.49/17.51 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.49/17.51 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.49/17.51 top(mark(X)) -> top(proper(X)) 64.49/17.51 top(ok(X)) -> top(active(X)) 64.49/17.51 64.49/17.51 Types: 64.49/17.51 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 tt :: tt:mark:nil:0':ok 64.49/17.51 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 nil :: tt:mark:nil:0':ok 64.49/17.51 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 0' :: tt:mark:nil:0':ok 64.49/17.51 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 top :: tt:mark:nil:0':ok -> top 64.49/17.51 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.49/17.51 hole_top2_0 :: top 64.49/17.51 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.49/17.51 64.49/17.51 ---------------------------------------- 64.49/17.51 64.49/17.51 (23) OrderProof (LOWER BOUND(ID)) 64.49/17.51 Heuristically decided to analyse the following defined symbols: 64.49/17.51 active, U102, isNatural, U103, isLNat, snd, splitAt, U112, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.49/17.51 64.49/17.51 They will be analysed ascendingly in the following order: 64.49/17.51 U102 < active 64.49/17.51 isNatural < active 64.49/17.51 U103 < active 64.49/17.51 isLNat < active 64.49/17.51 snd < active 64.49/17.51 splitAt < active 64.49/17.51 U112 < active 64.49/17.51 U122 < active 64.49/17.51 U132 < active 64.49/17.51 U133 < active 64.49/17.51 U142 < active 64.49/17.51 U143 < active 64.49/17.51 U152 < active 64.49/17.51 U153 < active 64.49/17.51 cons < active 64.49/17.51 natsFrom < active 64.49/17.51 s < active 64.49/17.51 head < active 64.49/17.51 afterNth < active 64.49/17.51 pair < active 64.49/17.51 U202 < active 64.49/17.51 fst < active 64.49/17.51 U42 < active 64.49/17.51 U43 < active 64.49/17.51 U52 < active 64.49/17.51 U53 < active 64.49/17.51 U62 < active 64.49/17.51 isPLNat < active 64.49/17.51 U72 < active 64.49/17.51 U82 < active 64.49/17.51 U92 < active 64.49/17.51 U11 < active 64.49/17.51 and < active 64.49/17.51 isNaturalKind < active 64.49/17.51 isLNatKind < active 64.49/17.51 U21 < active 64.49/17.51 U31 < active 64.49/17.51 U41 < active 64.49/17.51 U51 < active 64.49/17.51 U61 < active 64.49/17.51 isPLNatKind < active 64.49/17.51 U71 < active 64.49/17.51 U81 < active 64.49/17.51 U91 < active 64.49/17.51 U101 < active 64.49/17.51 U111 < active 64.49/17.51 U121 < active 64.49/17.51 U131 < active 64.49/17.51 U141 < active 64.49/17.51 U151 < active 64.49/17.51 U161 < active 64.49/17.51 U171 < active 64.49/17.51 U181 < active 64.49/17.51 U191 < active 64.49/17.51 U201 < active 64.49/17.51 U211 < active 64.49/17.51 U221 < active 64.49/17.51 tail < active 64.49/17.51 take < active 64.49/17.51 sel < active 64.49/17.51 active < top 64.49/17.51 U102 < proper 64.49/17.51 isNatural < proper 64.49/17.51 U103 < proper 64.49/17.51 isLNat < proper 64.49/17.51 snd < proper 64.49/17.51 splitAt < proper 64.49/17.51 U112 < proper 64.49/17.51 U122 < proper 64.49/17.51 U132 < proper 64.49/17.51 U133 < proper 64.49/17.51 U142 < proper 64.49/17.51 U143 < proper 64.49/17.51 U152 < proper 64.49/17.51 U153 < proper 64.49/17.51 cons < proper 64.49/17.51 natsFrom < proper 64.49/17.51 s < proper 64.49/17.51 head < proper 64.49/17.51 afterNth < proper 64.49/17.51 pair < proper 64.49/17.51 U202 < proper 64.49/17.51 fst < proper 64.49/17.51 U42 < proper 64.49/17.51 U43 < proper 64.49/17.51 U52 < proper 64.49/17.51 U53 < proper 64.49/17.51 U62 < proper 64.49/17.51 isPLNat < proper 64.49/17.51 U72 < proper 64.49/17.51 U82 < proper 64.49/17.51 U92 < proper 64.49/17.51 U11 < proper 64.49/17.51 and < proper 64.49/17.51 isNaturalKind < proper 64.49/17.51 isLNatKind < proper 64.49/17.51 U21 < proper 64.49/17.51 U31 < proper 64.49/17.51 U41 < proper 64.49/17.51 U51 < proper 64.49/17.51 U61 < proper 64.49/17.51 isPLNatKind < proper 64.49/17.51 U71 < proper 64.49/17.51 U81 < proper 64.49/17.51 U91 < proper 64.49/17.51 U101 < proper 64.49/17.51 U111 < proper 64.49/17.51 U121 < proper 64.49/17.51 U131 < proper 64.49/17.51 U141 < proper 64.49/17.51 U151 < proper 64.49/17.51 U161 < proper 64.49/17.51 U171 < proper 64.49/17.51 U181 < proper 64.49/17.51 U191 < proper 64.49/17.51 U201 < proper 64.49/17.51 U211 < proper 64.49/17.51 U221 < proper 64.49/17.51 tail < proper 64.49/17.51 take < proper 64.49/17.51 sel < proper 64.49/17.51 proper < top 64.49/17.51 64.49/17.51 ---------------------------------------- 64.49/17.51 64.49/17.51 (24) 64.49/17.51 Obligation: 64.49/17.51 TRS: 64.49/17.51 Rules: 64.49/17.51 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.49/17.51 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.49/17.51 active(U103(tt)) -> mark(tt) 64.49/17.51 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.49/17.51 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.49/17.51 active(U112(tt)) -> mark(tt) 64.49/17.51 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.49/17.51 active(U122(tt)) -> mark(tt) 64.49/17.51 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.49/17.51 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.49/17.51 active(U133(tt)) -> mark(tt) 64.49/17.51 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.49/17.51 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.49/17.51 active(U143(tt)) -> mark(tt) 64.49/17.51 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.49/17.51 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.49/17.51 active(U153(tt)) -> mark(tt) 64.49/17.51 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.49/17.51 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.49/17.51 active(U181(tt, Y)) -> mark(Y) 64.49/17.51 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.49/17.51 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.49/17.51 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.49/17.51 active(U21(tt, X)) -> mark(X) 64.49/17.51 active(U211(tt, XS)) -> mark(XS) 64.49/17.51 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.49/17.51 active(U31(tt, N)) -> mark(N) 64.49/17.51 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.49/17.51 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.49/17.51 active(U43(tt)) -> mark(tt) 64.49/17.51 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.49/17.51 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.49/17.51 active(U53(tt)) -> mark(tt) 64.49/17.51 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.49/17.51 active(U62(tt)) -> mark(tt) 64.49/17.51 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.49/17.51 active(U72(tt)) -> mark(tt) 64.49/17.51 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.49/17.51 active(U82(tt)) -> mark(tt) 64.49/17.51 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.49/17.51 active(U92(tt)) -> mark(tt) 64.49/17.51 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(and(tt, X)) -> mark(X) 64.49/17.51 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.49/17.51 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.49/17.51 active(isLNat(nil)) -> mark(tt) 64.49/17.51 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.49/17.51 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.49/17.51 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.49/17.51 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.49/17.51 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNatKind(nil)) -> mark(tt) 64.49/17.51 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.49/17.51 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.49/17.51 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.49/17.51 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.49/17.51 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isNatural(0')) -> mark(tt) 64.49/17.51 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.49/17.51 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.49/17.51 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isNaturalKind(0')) -> mark(tt) 64.49/17.51 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.49/17.51 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.49/17.51 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.49/17.51 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.49/17.51 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.49/17.51 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.49/17.51 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.49/17.51 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.49/17.51 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.49/17.51 active(U102(X1, X2)) -> U102(active(X1), X2) 64.49/17.51 active(U103(X)) -> U103(active(X)) 64.49/17.51 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.49/17.51 active(snd(X)) -> snd(active(X)) 64.49/17.51 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.49/17.51 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.49/17.51 active(U111(X1, X2)) -> U111(active(X1), X2) 64.49/17.51 active(U112(X)) -> U112(active(X)) 64.49/17.51 active(U121(X1, X2)) -> U121(active(X1), X2) 64.49/17.51 active(U122(X)) -> U122(active(X)) 64.49/17.51 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.49/17.51 active(U132(X1, X2)) -> U132(active(X1), X2) 64.49/17.51 active(U133(X)) -> U133(active(X)) 64.49/17.51 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.49/17.51 active(U142(X1, X2)) -> U142(active(X1), X2) 64.49/17.51 active(U143(X)) -> U143(active(X)) 64.49/17.51 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.49/17.51 active(U152(X1, X2)) -> U152(active(X1), X2) 64.49/17.51 active(U153(X)) -> U153(active(X)) 64.49/17.51 active(U161(X1, X2)) -> U161(active(X1), X2) 64.49/17.51 active(cons(X1, X2)) -> cons(active(X1), X2) 64.49/17.51 active(natsFrom(X)) -> natsFrom(active(X)) 64.49/17.51 active(s(X)) -> s(active(X)) 64.49/17.51 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.49/17.51 active(head(X)) -> head(active(X)) 64.49/17.51 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.49/17.51 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.49/17.51 active(U181(X1, X2)) -> U181(active(X1), X2) 64.49/17.51 active(U191(X1, X2)) -> U191(active(X1), X2) 64.49/17.51 active(pair(X1, X2)) -> pair(active(X1), X2) 64.49/17.51 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.49/17.51 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.49/17.51 active(U202(X1, X2)) -> U202(active(X1), X2) 64.49/17.51 active(U21(X1, X2)) -> U21(active(X1), X2) 64.49/17.51 active(U211(X1, X2)) -> U211(active(X1), X2) 64.49/17.51 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.49/17.51 active(fst(X)) -> fst(active(X)) 64.49/17.51 active(U31(X1, X2)) -> U31(active(X1), X2) 64.49/17.51 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.49/17.51 active(U42(X1, X2)) -> U42(active(X1), X2) 64.49/17.51 active(U43(X)) -> U43(active(X)) 64.49/17.51 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.49/17.51 active(U52(X1, X2)) -> U52(active(X1), X2) 64.49/17.51 active(U53(X)) -> U53(active(X)) 64.49/17.51 active(U61(X1, X2)) -> U61(active(X1), X2) 64.49/17.51 active(U62(X)) -> U62(active(X)) 64.49/17.51 active(U71(X1, X2)) -> U71(active(X1), X2) 64.49/17.51 active(U72(X)) -> U72(active(X)) 64.49/17.51 active(U81(X1, X2)) -> U81(active(X1), X2) 64.49/17.51 active(U82(X)) -> U82(active(X)) 64.49/17.51 active(U91(X1, X2)) -> U91(active(X1), X2) 64.49/17.51 active(U92(X)) -> U92(active(X)) 64.49/17.51 active(and(X1, X2)) -> and(active(X1), X2) 64.49/17.51 active(tail(X)) -> tail(active(X)) 64.49/17.51 active(take(X1, X2)) -> take(active(X1), X2) 64.49/17.51 active(take(X1, X2)) -> take(X1, active(X2)) 64.49/17.51 active(sel(X1, X2)) -> sel(active(X1), X2) 64.49/17.51 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.49/17.51 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.49/17.51 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.49/17.51 U103(mark(X)) -> mark(U103(X)) 64.49/17.51 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.49/17.51 snd(mark(X)) -> mark(snd(X)) 64.49/17.51 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.49/17.51 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.49/17.51 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.49/17.51 U112(mark(X)) -> mark(U112(X)) 64.49/17.51 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.49/17.51 U122(mark(X)) -> mark(U122(X)) 64.49/17.51 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.49/17.51 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.49/17.51 U133(mark(X)) -> mark(U133(X)) 64.49/17.51 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.49/17.51 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.49/17.51 U143(mark(X)) -> mark(U143(X)) 64.49/17.51 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.49/17.51 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.49/17.51 U153(mark(X)) -> mark(U153(X)) 64.49/17.51 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.49/17.51 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.49/17.51 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.49/17.51 s(mark(X)) -> mark(s(X)) 64.49/17.51 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.49/17.51 head(mark(X)) -> mark(head(X)) 64.49/17.51 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.49/17.51 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.49/17.51 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.49/17.51 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.49/17.51 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.49/17.51 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.49/17.51 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.49/17.51 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.49/17.51 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.49/17.51 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.49/17.51 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.49/17.51 fst(mark(X)) -> mark(fst(X)) 64.49/17.51 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.49/17.51 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.49/17.51 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.49/17.51 U43(mark(X)) -> mark(U43(X)) 64.49/17.51 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.49/17.51 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.49/17.51 U53(mark(X)) -> mark(U53(X)) 64.49/17.51 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.49/17.51 U62(mark(X)) -> mark(U62(X)) 64.49/17.51 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.49/17.51 U72(mark(X)) -> mark(U72(X)) 64.49/17.51 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.49/17.51 U82(mark(X)) -> mark(U82(X)) 64.49/17.51 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.49/17.51 U92(mark(X)) -> mark(U92(X)) 64.49/17.51 and(mark(X1), X2) -> mark(and(X1, X2)) 64.49/17.51 tail(mark(X)) -> mark(tail(X)) 64.49/17.51 take(mark(X1), X2) -> mark(take(X1, X2)) 64.49/17.51 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.49/17.51 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.49/17.51 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.49/17.51 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(tt) -> ok(tt) 64.49/17.51 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.49/17.51 proper(isNatural(X)) -> isNatural(proper(X)) 64.49/17.51 proper(U103(X)) -> U103(proper(X)) 64.49/17.51 proper(isLNat(X)) -> isLNat(proper(X)) 64.49/17.51 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(snd(X)) -> snd(proper(X)) 64.49/17.51 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.49/17.51 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.49/17.51 proper(U112(X)) -> U112(proper(X)) 64.49/17.51 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.49/17.51 proper(U122(X)) -> U122(proper(X)) 64.49/17.51 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.49/17.51 proper(U133(X)) -> U133(proper(X)) 64.49/17.51 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.49/17.51 proper(U143(X)) -> U143(proper(X)) 64.49/17.51 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.49/17.51 proper(U153(X)) -> U153(proper(X)) 64.49/17.51 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.49/17.51 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.49/17.51 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.49/17.51 proper(s(X)) -> s(proper(X)) 64.49/17.51 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(head(X)) -> head(proper(X)) 64.49/17.51 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.49/17.51 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.49/17.51 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.49/17.51 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.49/17.51 proper(nil) -> ok(nil) 64.49/17.51 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.49/17.51 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.49/17.51 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.49/17.51 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.49/17.51 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(fst(X)) -> fst(proper(X)) 64.49/17.51 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.49/17.51 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.49/17.51 proper(U43(X)) -> U43(proper(X)) 64.49/17.51 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.49/17.51 proper(U53(X)) -> U53(proper(X)) 64.49/17.51 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.49/17.51 proper(U62(X)) -> U62(proper(X)) 64.49/17.51 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.49/17.51 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.49/17.51 proper(U72(X)) -> U72(proper(X)) 64.49/17.51 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.49/17.51 proper(U82(X)) -> U82(proper(X)) 64.49/17.51 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.49/17.51 proper(U92(X)) -> U92(proper(X)) 64.49/17.51 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.49/17.51 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.49/17.51 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.49/17.51 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.49/17.51 proper(tail(X)) -> tail(proper(X)) 64.49/17.51 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.49/17.51 proper(0') -> ok(0') 64.49/17.51 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.49/17.51 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.49/17.51 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.49/17.51 isNatural(ok(X)) -> ok(isNatural(X)) 64.49/17.51 U103(ok(X)) -> ok(U103(X)) 64.49/17.51 isLNat(ok(X)) -> ok(isLNat(X)) 64.49/17.51 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.49/17.51 snd(ok(X)) -> ok(snd(X)) 64.49/17.51 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.49/17.51 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.49/17.51 U112(ok(X)) -> ok(U112(X)) 64.49/17.51 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.49/17.51 U122(ok(X)) -> ok(U122(X)) 64.49/17.51 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.49/17.51 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.49/17.51 U133(ok(X)) -> ok(U133(X)) 64.49/17.51 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.49/17.51 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.49/17.51 U143(ok(X)) -> ok(U143(X)) 64.49/17.51 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.49/17.51 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.49/17.51 U153(ok(X)) -> ok(U153(X)) 64.49/17.51 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.49/17.51 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.49/17.51 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.49/17.51 s(ok(X)) -> ok(s(X)) 64.49/17.51 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.49/17.51 head(ok(X)) -> ok(head(X)) 64.49/17.51 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.49/17.51 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.49/17.51 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.49/17.51 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.49/17.51 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.49/17.51 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.49/17.51 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.49/17.51 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.49/17.51 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.49/17.51 fst(ok(X)) -> ok(fst(X)) 64.49/17.51 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.49/17.51 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.49/17.51 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.49/17.51 U43(ok(X)) -> ok(U43(X)) 64.49/17.51 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.49/17.51 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.49/17.51 U53(ok(X)) -> ok(U53(X)) 64.49/17.51 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.49/17.51 U62(ok(X)) -> ok(U62(X)) 64.49/17.51 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.49/17.51 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.49/17.51 U72(ok(X)) -> ok(U72(X)) 64.49/17.51 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.49/17.51 U82(ok(X)) -> ok(U82(X)) 64.49/17.51 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.49/17.51 U92(ok(X)) -> ok(U92(X)) 64.49/17.51 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.49/17.51 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.49/17.51 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.49/17.51 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.49/17.51 tail(ok(X)) -> ok(tail(X)) 64.49/17.51 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.49/17.51 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.49/17.51 top(mark(X)) -> top(proper(X)) 64.49/17.51 top(ok(X)) -> top(active(X)) 64.49/17.51 64.49/17.51 Types: 64.49/17.51 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 tt :: tt:mark:nil:0':ok 64.49/17.51 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 nil :: tt:mark:nil:0':ok 64.49/17.51 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 0' :: tt:mark:nil:0':ok 64.49/17.51 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 top :: tt:mark:nil:0':ok -> top 64.49/17.51 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.49/17.51 hole_top2_0 :: top 64.49/17.51 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.49/17.51 64.49/17.51 64.49/17.51 Generator Equations: 64.49/17.51 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.49/17.51 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.49/17.51 64.49/17.51 64.49/17.51 The following defined symbols remain to be analysed: 64.49/17.51 U102, active, isNatural, U103, isLNat, snd, splitAt, U112, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.49/17.51 64.49/17.51 They will be analysed ascendingly in the following order: 64.49/17.51 U102 < active 64.49/17.51 isNatural < active 64.49/17.51 U103 < active 64.49/17.51 isLNat < active 64.49/17.51 snd < active 64.49/17.51 splitAt < active 64.49/17.51 U112 < active 64.49/17.51 U122 < active 64.49/17.51 U132 < active 64.49/17.51 U133 < active 64.49/17.51 U142 < active 64.49/17.51 U143 < active 64.49/17.51 U152 < active 64.49/17.51 U153 < active 64.49/17.51 cons < active 64.49/17.51 natsFrom < active 64.49/17.51 s < active 64.49/17.51 head < active 64.49/17.51 afterNth < active 64.49/17.51 pair < active 64.49/17.51 U202 < active 64.49/17.51 fst < active 64.49/17.51 U42 < active 64.49/17.51 U43 < active 64.49/17.51 U52 < active 64.49/17.51 U53 < active 64.49/17.51 U62 < active 64.49/17.51 isPLNat < active 64.49/17.51 U72 < active 64.49/17.51 U82 < active 64.49/17.51 U92 < active 64.49/17.51 U11 < active 64.49/17.51 and < active 64.49/17.51 isNaturalKind < active 64.49/17.51 isLNatKind < active 64.49/17.51 U21 < active 64.49/17.51 U31 < active 64.49/17.51 U41 < active 64.49/17.51 U51 < active 64.49/17.51 U61 < active 64.49/17.51 isPLNatKind < active 64.49/17.51 U71 < active 64.49/17.51 U81 < active 64.49/17.51 U91 < active 64.49/17.51 U101 < active 64.49/17.51 U111 < active 64.49/17.51 U121 < active 64.49/17.51 U131 < active 64.49/17.51 U141 < active 64.49/17.51 U151 < active 64.49/17.51 U161 < active 64.49/17.51 U171 < active 64.49/17.51 U181 < active 64.49/17.51 U191 < active 64.49/17.51 U201 < active 64.49/17.51 U211 < active 64.49/17.51 U221 < active 64.49/17.51 tail < active 64.49/17.51 take < active 64.49/17.51 sel < active 64.49/17.51 active < top 64.49/17.51 U102 < proper 64.49/17.51 isNatural < proper 64.49/17.51 U103 < proper 64.49/17.51 isLNat < proper 64.49/17.51 snd < proper 64.49/17.51 splitAt < proper 64.49/17.51 U112 < proper 64.49/17.51 U122 < proper 64.49/17.51 U132 < proper 64.49/17.51 U133 < proper 64.49/17.51 U142 < proper 64.49/17.51 U143 < proper 64.49/17.51 U152 < proper 64.49/17.51 U153 < proper 64.49/17.51 cons < proper 64.49/17.51 natsFrom < proper 64.49/17.51 s < proper 64.49/17.51 head < proper 64.49/17.51 afterNth < proper 64.49/17.51 pair < proper 64.49/17.51 U202 < proper 64.49/17.51 fst < proper 64.49/17.51 U42 < proper 64.49/17.51 U43 < proper 64.49/17.51 U52 < proper 64.49/17.51 U53 < proper 64.49/17.51 U62 < proper 64.49/17.51 isPLNat < proper 64.49/17.51 U72 < proper 64.49/17.51 U82 < proper 64.49/17.51 U92 < proper 64.49/17.51 U11 < proper 64.49/17.51 and < proper 64.49/17.51 isNaturalKind < proper 64.49/17.51 isLNatKind < proper 64.49/17.51 U21 < proper 64.49/17.51 U31 < proper 64.49/17.51 U41 < proper 64.49/17.51 U51 < proper 64.49/17.51 U61 < proper 64.49/17.51 isPLNatKind < proper 64.49/17.51 U71 < proper 64.49/17.51 U81 < proper 64.49/17.51 U91 < proper 64.49/17.51 U101 < proper 64.49/17.51 U111 < proper 64.49/17.51 U121 < proper 64.49/17.51 U131 < proper 64.49/17.51 U141 < proper 64.49/17.51 U151 < proper 64.49/17.51 U161 < proper 64.49/17.51 U171 < proper 64.49/17.51 U181 < proper 64.49/17.51 U191 < proper 64.49/17.51 U201 < proper 64.49/17.51 U211 < proper 64.49/17.51 U221 < proper 64.49/17.51 tail < proper 64.49/17.51 take < proper 64.49/17.51 sel < proper 64.49/17.51 proper < top 64.49/17.51 64.49/17.51 ---------------------------------------- 64.49/17.51 64.49/17.51 (25) RewriteLemmaProof (LOWER BOUND(ID)) 64.49/17.51 Proved the following rewrite lemma: 64.49/17.51 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.49/17.51 64.49/17.51 Induction Base: 64.49/17.51 U102(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.49/17.51 64.49/17.51 Induction Step: 64.49/17.51 U102(gen_tt:mark:nil:0':ok3_0(+(1, +(n5_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.49/17.51 mark(U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.49/17.51 mark(*4_0) 64.49/17.51 64.49/17.51 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.49/17.51 ---------------------------------------- 64.49/17.51 64.49/17.51 (26) 64.49/17.51 Complex Obligation (BEST) 64.49/17.51 64.49/17.51 ---------------------------------------- 64.49/17.51 64.49/17.51 (27) 64.49/17.51 Obligation: 64.49/17.51 Proved the lower bound n^1 for the following obligation: 64.49/17.51 64.49/17.51 TRS: 64.49/17.51 Rules: 64.49/17.51 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.49/17.51 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.49/17.51 active(U103(tt)) -> mark(tt) 64.49/17.51 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.49/17.51 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.49/17.51 active(U112(tt)) -> mark(tt) 64.49/17.51 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.49/17.51 active(U122(tt)) -> mark(tt) 64.49/17.51 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.49/17.51 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.49/17.51 active(U133(tt)) -> mark(tt) 64.49/17.51 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.49/17.51 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.49/17.51 active(U143(tt)) -> mark(tt) 64.49/17.51 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.49/17.51 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.49/17.51 active(U153(tt)) -> mark(tt) 64.49/17.51 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.49/17.51 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.49/17.51 active(U181(tt, Y)) -> mark(Y) 64.49/17.51 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.49/17.51 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.49/17.51 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.49/17.51 active(U21(tt, X)) -> mark(X) 64.49/17.51 active(U211(tt, XS)) -> mark(XS) 64.49/17.51 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.49/17.51 active(U31(tt, N)) -> mark(N) 64.49/17.51 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.49/17.51 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.49/17.51 active(U43(tt)) -> mark(tt) 64.49/17.51 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.49/17.51 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.49/17.51 active(U53(tt)) -> mark(tt) 64.49/17.51 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.49/17.51 active(U62(tt)) -> mark(tt) 64.49/17.51 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.49/17.51 active(U72(tt)) -> mark(tt) 64.49/17.51 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.49/17.51 active(U82(tt)) -> mark(tt) 64.49/17.51 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.49/17.51 active(U92(tt)) -> mark(tt) 64.49/17.51 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(and(tt, X)) -> mark(X) 64.49/17.51 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.49/17.51 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.49/17.51 active(isLNat(nil)) -> mark(tt) 64.49/17.51 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.49/17.51 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.49/17.51 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.49/17.51 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.49/17.51 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isLNatKind(nil)) -> mark(tt) 64.49/17.51 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.49/17.51 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.49/17.51 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.49/17.51 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.49/17.51 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isNatural(0')) -> mark(tt) 64.49/17.51 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.49/17.51 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.49/17.51 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isNaturalKind(0')) -> mark(tt) 64.49/17.51 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.49/17.51 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.49/17.51 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.49/17.51 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.49/17.51 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.49/17.51 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.49/17.51 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.49/17.51 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.49/17.51 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.49/17.51 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.49/17.51 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.49/17.51 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.49/17.51 active(U102(X1, X2)) -> U102(active(X1), X2) 64.49/17.51 active(U103(X)) -> U103(active(X)) 64.49/17.51 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.49/17.51 active(snd(X)) -> snd(active(X)) 64.49/17.51 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.49/17.51 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.49/17.51 active(U111(X1, X2)) -> U111(active(X1), X2) 64.49/17.51 active(U112(X)) -> U112(active(X)) 64.49/17.51 active(U121(X1, X2)) -> U121(active(X1), X2) 64.49/17.51 active(U122(X)) -> U122(active(X)) 64.49/17.51 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.49/17.51 active(U132(X1, X2)) -> U132(active(X1), X2) 64.49/17.51 active(U133(X)) -> U133(active(X)) 64.49/17.51 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.49/17.51 active(U142(X1, X2)) -> U142(active(X1), X2) 64.49/17.51 active(U143(X)) -> U143(active(X)) 64.49/17.51 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.49/17.51 active(U152(X1, X2)) -> U152(active(X1), X2) 64.49/17.51 active(U153(X)) -> U153(active(X)) 64.49/17.51 active(U161(X1, X2)) -> U161(active(X1), X2) 64.49/17.51 active(cons(X1, X2)) -> cons(active(X1), X2) 64.49/17.51 active(natsFrom(X)) -> natsFrom(active(X)) 64.49/17.51 active(s(X)) -> s(active(X)) 64.49/17.51 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.49/17.51 active(head(X)) -> head(active(X)) 64.49/17.51 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.49/17.51 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.49/17.51 active(U181(X1, X2)) -> U181(active(X1), X2) 64.49/17.51 active(U191(X1, X2)) -> U191(active(X1), X2) 64.49/17.51 active(pair(X1, X2)) -> pair(active(X1), X2) 64.49/17.51 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.49/17.51 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.49/17.51 active(U202(X1, X2)) -> U202(active(X1), X2) 64.49/17.51 active(U21(X1, X2)) -> U21(active(X1), X2) 64.49/17.51 active(U211(X1, X2)) -> U211(active(X1), X2) 64.49/17.51 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.49/17.51 active(fst(X)) -> fst(active(X)) 64.49/17.51 active(U31(X1, X2)) -> U31(active(X1), X2) 64.49/17.51 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.49/17.51 active(U42(X1, X2)) -> U42(active(X1), X2) 64.49/17.51 active(U43(X)) -> U43(active(X)) 64.49/17.51 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.49/17.51 active(U52(X1, X2)) -> U52(active(X1), X2) 64.49/17.51 active(U53(X)) -> U53(active(X)) 64.49/17.51 active(U61(X1, X2)) -> U61(active(X1), X2) 64.49/17.51 active(U62(X)) -> U62(active(X)) 64.49/17.51 active(U71(X1, X2)) -> U71(active(X1), X2) 64.49/17.51 active(U72(X)) -> U72(active(X)) 64.49/17.51 active(U81(X1, X2)) -> U81(active(X1), X2) 64.49/17.51 active(U82(X)) -> U82(active(X)) 64.49/17.51 active(U91(X1, X2)) -> U91(active(X1), X2) 64.49/17.51 active(U92(X)) -> U92(active(X)) 64.49/17.51 active(and(X1, X2)) -> and(active(X1), X2) 64.49/17.51 active(tail(X)) -> tail(active(X)) 64.49/17.51 active(take(X1, X2)) -> take(active(X1), X2) 64.49/17.51 active(take(X1, X2)) -> take(X1, active(X2)) 64.49/17.51 active(sel(X1, X2)) -> sel(active(X1), X2) 64.49/17.51 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.49/17.51 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.49/17.51 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.49/17.51 U103(mark(X)) -> mark(U103(X)) 64.49/17.51 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.49/17.51 snd(mark(X)) -> mark(snd(X)) 64.49/17.51 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.49/17.51 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.49/17.51 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.49/17.51 U112(mark(X)) -> mark(U112(X)) 64.49/17.51 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.49/17.51 U122(mark(X)) -> mark(U122(X)) 64.49/17.51 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.49/17.51 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.49/17.51 U133(mark(X)) -> mark(U133(X)) 64.49/17.51 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.49/17.51 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.49/17.51 U143(mark(X)) -> mark(U143(X)) 64.49/17.51 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.49/17.51 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.49/17.51 U153(mark(X)) -> mark(U153(X)) 64.49/17.51 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.49/17.51 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.49/17.51 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.49/17.51 s(mark(X)) -> mark(s(X)) 64.49/17.51 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.49/17.51 head(mark(X)) -> mark(head(X)) 64.49/17.51 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.49/17.51 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.49/17.51 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.49/17.51 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.49/17.51 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.49/17.51 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.49/17.51 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.49/17.51 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.49/17.51 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.49/17.51 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.49/17.51 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.49/17.51 fst(mark(X)) -> mark(fst(X)) 64.49/17.51 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.49/17.51 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.49/17.51 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.49/17.51 U43(mark(X)) -> mark(U43(X)) 64.49/17.51 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.49/17.51 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.49/17.51 U53(mark(X)) -> mark(U53(X)) 64.49/17.51 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.49/17.51 U62(mark(X)) -> mark(U62(X)) 64.49/17.51 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.49/17.51 U72(mark(X)) -> mark(U72(X)) 64.49/17.51 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.49/17.51 U82(mark(X)) -> mark(U82(X)) 64.49/17.51 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.49/17.51 U92(mark(X)) -> mark(U92(X)) 64.49/17.51 and(mark(X1), X2) -> mark(and(X1, X2)) 64.49/17.51 tail(mark(X)) -> mark(tail(X)) 64.49/17.51 take(mark(X1), X2) -> mark(take(X1, X2)) 64.49/17.51 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.49/17.51 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.49/17.51 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.49/17.51 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(tt) -> ok(tt) 64.49/17.51 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.49/17.51 proper(isNatural(X)) -> isNatural(proper(X)) 64.49/17.51 proper(U103(X)) -> U103(proper(X)) 64.49/17.51 proper(isLNat(X)) -> isLNat(proper(X)) 64.49/17.51 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(snd(X)) -> snd(proper(X)) 64.49/17.51 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.49/17.51 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.49/17.51 proper(U112(X)) -> U112(proper(X)) 64.49/17.51 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.49/17.51 proper(U122(X)) -> U122(proper(X)) 64.49/17.51 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.49/17.51 proper(U133(X)) -> U133(proper(X)) 64.49/17.51 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.49/17.51 proper(U143(X)) -> U143(proper(X)) 64.49/17.51 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.49/17.51 proper(U153(X)) -> U153(proper(X)) 64.49/17.51 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.49/17.51 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.49/17.51 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.49/17.51 proper(s(X)) -> s(proper(X)) 64.49/17.51 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(head(X)) -> head(proper(X)) 64.49/17.51 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.49/17.51 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.49/17.51 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.49/17.51 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.49/17.51 proper(nil) -> ok(nil) 64.49/17.51 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.49/17.51 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.49/17.51 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.49/17.51 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.49/17.51 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(fst(X)) -> fst(proper(X)) 64.49/17.51 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.49/17.51 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.49/17.51 proper(U43(X)) -> U43(proper(X)) 64.49/17.51 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.49/17.51 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.49/17.51 proper(U53(X)) -> U53(proper(X)) 64.49/17.51 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.49/17.51 proper(U62(X)) -> U62(proper(X)) 64.49/17.51 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.49/17.51 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.49/17.51 proper(U72(X)) -> U72(proper(X)) 64.49/17.51 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.49/17.51 proper(U82(X)) -> U82(proper(X)) 64.49/17.51 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.49/17.51 proper(U92(X)) -> U92(proper(X)) 64.49/17.51 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.49/17.51 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.49/17.51 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.49/17.51 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.49/17.51 proper(tail(X)) -> tail(proper(X)) 64.49/17.51 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.49/17.51 proper(0') -> ok(0') 64.49/17.51 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.49/17.51 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.49/17.51 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.49/17.51 isNatural(ok(X)) -> ok(isNatural(X)) 64.49/17.51 U103(ok(X)) -> ok(U103(X)) 64.49/17.51 isLNat(ok(X)) -> ok(isLNat(X)) 64.49/17.51 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.49/17.51 snd(ok(X)) -> ok(snd(X)) 64.49/17.51 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.49/17.51 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.49/17.51 U112(ok(X)) -> ok(U112(X)) 64.49/17.51 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.49/17.51 U122(ok(X)) -> ok(U122(X)) 64.49/17.51 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.49/17.51 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.49/17.51 U133(ok(X)) -> ok(U133(X)) 64.49/17.51 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.49/17.51 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.49/17.51 U143(ok(X)) -> ok(U143(X)) 64.49/17.51 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.49/17.51 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.49/17.51 U153(ok(X)) -> ok(U153(X)) 64.49/17.51 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.49/17.51 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.49/17.51 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.49/17.51 s(ok(X)) -> ok(s(X)) 64.49/17.51 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.49/17.51 head(ok(X)) -> ok(head(X)) 64.49/17.51 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.49/17.51 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.49/17.51 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.49/17.51 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.49/17.51 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.49/17.51 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.49/17.51 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.49/17.51 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.49/17.51 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.49/17.51 fst(ok(X)) -> ok(fst(X)) 64.49/17.51 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.49/17.51 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.49/17.51 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.49/17.51 U43(ok(X)) -> ok(U43(X)) 64.49/17.51 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.49/17.51 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.49/17.51 U53(ok(X)) -> ok(U53(X)) 64.49/17.51 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.49/17.51 U62(ok(X)) -> ok(U62(X)) 64.49/17.51 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.49/17.51 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.49/17.51 U72(ok(X)) -> ok(U72(X)) 64.49/17.51 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.49/17.51 U82(ok(X)) -> ok(U82(X)) 64.49/17.51 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.49/17.51 U92(ok(X)) -> ok(U92(X)) 64.49/17.51 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.49/17.51 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.49/17.51 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.49/17.51 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.49/17.51 tail(ok(X)) -> ok(tail(X)) 64.49/17.51 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.49/17.51 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.49/17.51 top(mark(X)) -> top(proper(X)) 64.49/17.51 top(ok(X)) -> top(active(X)) 64.49/17.51 64.49/17.51 Types: 64.49/17.51 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 tt :: tt:mark:nil:0':ok 64.49/17.51 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 nil :: tt:mark:nil:0':ok 64.49/17.51 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 0' :: tt:mark:nil:0':ok 64.49/17.51 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.49/17.51 top :: tt:mark:nil:0':ok -> top 64.49/17.51 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.49/17.51 hole_top2_0 :: top 64.49/17.51 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.49/17.51 64.49/17.51 64.49/17.51 Generator Equations: 64.49/17.51 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.49/17.51 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.49/17.52 64.49/17.52 64.49/17.52 The following defined symbols remain to be analysed: 64.49/17.52 U102, active, isNatural, U103, isLNat, snd, splitAt, U112, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.49/17.52 64.49/17.52 They will be analysed ascendingly in the following order: 64.49/17.52 U102 < active 64.49/17.52 isNatural < active 64.49/17.52 U103 < active 64.49/17.52 isLNat < active 64.49/17.52 snd < active 64.49/17.52 splitAt < active 64.49/17.52 U112 < active 64.49/17.52 U122 < active 64.49/17.52 U132 < active 64.49/17.52 U133 < active 64.49/17.52 U142 < active 64.49/17.52 U143 < active 64.49/17.52 U152 < active 64.49/17.52 U153 < active 64.49/17.52 cons < active 64.49/17.52 natsFrom < active 64.49/17.52 s < active 64.49/17.52 head < active 64.49/17.52 afterNth < active 64.49/17.52 pair < active 64.49/17.52 U202 < active 64.49/17.52 fst < active 64.49/17.52 U42 < active 64.49/17.52 U43 < active 64.49/17.52 U52 < active 64.49/17.52 U53 < active 64.49/17.52 U62 < active 64.49/17.52 isPLNat < active 64.49/17.52 U72 < active 64.49/17.52 U82 < active 64.49/17.52 U92 < active 64.49/17.52 U11 < active 64.49/17.52 and < active 64.49/17.52 isNaturalKind < active 64.49/17.52 isLNatKind < active 64.49/17.52 U21 < active 64.49/17.52 U31 < active 64.49/17.52 U41 < active 64.49/17.52 U51 < active 64.49/17.52 U61 < active 64.49/17.52 isPLNatKind < active 64.49/17.52 U71 < active 64.49/17.52 U81 < active 64.49/17.52 U91 < active 64.49/17.52 U101 < active 64.49/17.52 U111 < active 64.49/17.52 U121 < active 64.49/17.52 U131 < active 64.49/17.52 U141 < active 64.49/17.52 U151 < active 64.49/17.52 U161 < active 64.49/17.52 U171 < active 64.49/17.52 U181 < active 64.49/17.52 U191 < active 64.49/17.52 U201 < active 64.49/17.52 U211 < active 64.49/17.52 U221 < active 64.49/17.52 tail < active 64.49/17.52 take < active 64.49/17.52 sel < active 64.49/17.52 active < top 64.49/17.52 U102 < proper 64.49/17.52 isNatural < proper 64.49/17.52 U103 < proper 64.49/17.52 isLNat < proper 64.49/17.52 snd < proper 64.49/17.52 splitAt < proper 64.49/17.52 U112 < proper 64.49/17.52 U122 < proper 64.49/17.52 U132 < proper 64.49/17.52 U133 < proper 64.49/17.52 U142 < proper 64.49/17.52 U143 < proper 64.49/17.52 U152 < proper 64.49/17.52 U153 < proper 64.49/17.52 cons < proper 64.49/17.52 natsFrom < proper 64.49/17.52 s < proper 64.49/17.52 head < proper 64.49/17.52 afterNth < proper 64.49/17.52 pair < proper 64.49/17.52 U202 < proper 64.49/17.52 fst < proper 64.49/17.52 U42 < proper 64.49/17.52 U43 < proper 64.49/17.52 U52 < proper 64.49/17.52 U53 < proper 64.49/17.52 U62 < proper 64.49/17.52 isPLNat < proper 64.49/17.52 U72 < proper 64.49/17.52 U82 < proper 64.49/17.52 U92 < proper 64.49/17.52 U11 < proper 64.49/17.52 and < proper 64.49/17.52 isNaturalKind < proper 64.49/17.52 isLNatKind < proper 64.49/17.52 U21 < proper 64.49/17.52 U31 < proper 64.49/17.52 U41 < proper 64.49/17.52 U51 < proper 64.49/17.52 U61 < proper 64.49/17.52 isPLNatKind < proper 64.49/17.52 U71 < proper 64.49/17.52 U81 < proper 64.49/17.52 U91 < proper 64.49/17.52 U101 < proper 64.49/17.52 U111 < proper 64.49/17.52 U121 < proper 64.49/17.52 U131 < proper 64.49/17.52 U141 < proper 64.49/17.52 U151 < proper 64.49/17.52 U161 < proper 64.49/17.52 U171 < proper 64.49/17.52 U181 < proper 64.49/17.52 U191 < proper 64.49/17.52 U201 < proper 64.49/17.52 U211 < proper 64.49/17.52 U221 < proper 64.49/17.52 tail < proper 64.49/17.52 take < proper 64.49/17.52 sel < proper 64.49/17.52 proper < top 64.49/17.52 64.49/17.52 ---------------------------------------- 64.49/17.52 64.49/17.52 (28) LowerBoundPropagationProof (FINISHED) 64.49/17.52 Propagated lower bound. 64.49/17.52 ---------------------------------------- 64.49/17.52 64.49/17.52 (29) 64.49/17.52 BOUNDS(n^1, INF) 64.49/17.52 64.49/17.52 ---------------------------------------- 64.49/17.52 64.49/17.52 (30) 64.49/17.52 Obligation: 64.49/17.52 TRS: 64.49/17.52 Rules: 64.49/17.52 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.49/17.52 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.49/17.52 active(U103(tt)) -> mark(tt) 64.49/17.52 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.49/17.52 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.49/17.52 active(U112(tt)) -> mark(tt) 64.49/17.52 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.49/17.52 active(U122(tt)) -> mark(tt) 64.49/17.52 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.49/17.52 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.49/17.52 active(U133(tt)) -> mark(tt) 64.49/17.52 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.49/17.52 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.64/17.52 active(U143(tt)) -> mark(tt) 64.64/17.52 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.64/17.52 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.64/17.52 active(U153(tt)) -> mark(tt) 64.64/17.52 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.64/17.52 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.64/17.52 active(U181(tt, Y)) -> mark(Y) 64.64/17.52 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.64/17.52 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.64/17.52 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.64/17.52 active(U21(tt, X)) -> mark(X) 64.64/17.52 active(U211(tt, XS)) -> mark(XS) 64.64/17.52 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.64/17.52 active(U31(tt, N)) -> mark(N) 64.64/17.52 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.64/17.52 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.64/17.52 active(U43(tt)) -> mark(tt) 64.64/17.52 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.64/17.52 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.64/17.52 active(U53(tt)) -> mark(tt) 64.64/17.52 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.64/17.52 active(U62(tt)) -> mark(tt) 64.64/17.52 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.64/17.52 active(U72(tt)) -> mark(tt) 64.64/17.52 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.64/17.52 active(U82(tt)) -> mark(tt) 64.64/17.52 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.64/17.52 active(U92(tt)) -> mark(tt) 64.64/17.52 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.52 active(and(tt, X)) -> mark(X) 64.64/17.52 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.64/17.52 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.64/17.52 active(isLNat(nil)) -> mark(tt) 64.64/17.52 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.52 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.52 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.64/17.52 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.64/17.52 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.64/17.52 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.64/17.52 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNatKind(nil)) -> mark(tt) 64.64/17.53 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isNatural(0')) -> mark(tt) 64.64/17.53 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.64/17.53 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.64/17.53 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isNaturalKind(0')) -> mark(tt) 64.64/17.53 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.64/17.53 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.64/17.53 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.64/17.53 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.64/17.53 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.64/17.53 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.64/17.53 active(U102(X1, X2)) -> U102(active(X1), X2) 64.64/17.53 active(U103(X)) -> U103(active(X)) 64.64/17.53 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.64/17.53 active(snd(X)) -> snd(active(X)) 64.64/17.53 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.64/17.53 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.64/17.53 active(U111(X1, X2)) -> U111(active(X1), X2) 64.64/17.53 active(U112(X)) -> U112(active(X)) 64.64/17.53 active(U121(X1, X2)) -> U121(active(X1), X2) 64.64/17.53 active(U122(X)) -> U122(active(X)) 64.64/17.53 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.64/17.53 active(U132(X1, X2)) -> U132(active(X1), X2) 64.64/17.53 active(U133(X)) -> U133(active(X)) 64.64/17.53 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.64/17.53 active(U142(X1, X2)) -> U142(active(X1), X2) 64.64/17.53 active(U143(X)) -> U143(active(X)) 64.64/17.53 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.64/17.53 active(U152(X1, X2)) -> U152(active(X1), X2) 64.64/17.53 active(U153(X)) -> U153(active(X)) 64.64/17.53 active(U161(X1, X2)) -> U161(active(X1), X2) 64.64/17.53 active(cons(X1, X2)) -> cons(active(X1), X2) 64.64/17.53 active(natsFrom(X)) -> natsFrom(active(X)) 64.64/17.53 active(s(X)) -> s(active(X)) 64.64/17.53 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.64/17.53 active(head(X)) -> head(active(X)) 64.64/17.53 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.64/17.53 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.64/17.53 active(U181(X1, X2)) -> U181(active(X1), X2) 64.64/17.53 active(U191(X1, X2)) -> U191(active(X1), X2) 64.64/17.53 active(pair(X1, X2)) -> pair(active(X1), X2) 64.64/17.53 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.64/17.53 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.64/17.53 active(U202(X1, X2)) -> U202(active(X1), X2) 64.64/17.53 active(U21(X1, X2)) -> U21(active(X1), X2) 64.64/17.53 active(U211(X1, X2)) -> U211(active(X1), X2) 64.64/17.53 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.64/17.53 active(fst(X)) -> fst(active(X)) 64.64/17.53 active(U31(X1, X2)) -> U31(active(X1), X2) 64.64/17.53 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.64/17.53 active(U42(X1, X2)) -> U42(active(X1), X2) 64.64/17.53 active(U43(X)) -> U43(active(X)) 64.64/17.53 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.64/17.53 active(U52(X1, X2)) -> U52(active(X1), X2) 64.64/17.53 active(U53(X)) -> U53(active(X)) 64.64/17.53 active(U61(X1, X2)) -> U61(active(X1), X2) 64.64/17.53 active(U62(X)) -> U62(active(X)) 64.64/17.53 active(U71(X1, X2)) -> U71(active(X1), X2) 64.64/17.53 active(U72(X)) -> U72(active(X)) 64.64/17.53 active(U81(X1, X2)) -> U81(active(X1), X2) 64.64/17.53 active(U82(X)) -> U82(active(X)) 64.64/17.53 active(U91(X1, X2)) -> U91(active(X1), X2) 64.64/17.53 active(U92(X)) -> U92(active(X)) 64.64/17.53 active(and(X1, X2)) -> and(active(X1), X2) 64.64/17.53 active(tail(X)) -> tail(active(X)) 64.64/17.53 active(take(X1, X2)) -> take(active(X1), X2) 64.64/17.53 active(take(X1, X2)) -> take(X1, active(X2)) 64.64/17.53 active(sel(X1, X2)) -> sel(active(X1), X2) 64.64/17.53 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.64/17.53 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.64/17.53 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.64/17.53 U103(mark(X)) -> mark(U103(X)) 64.64/17.53 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.64/17.53 snd(mark(X)) -> mark(snd(X)) 64.64/17.53 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.64/17.53 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.64/17.53 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.64/17.53 U112(mark(X)) -> mark(U112(X)) 64.64/17.53 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.64/17.53 U122(mark(X)) -> mark(U122(X)) 64.64/17.53 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.64/17.53 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.64/17.53 U133(mark(X)) -> mark(U133(X)) 64.64/17.53 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.64/17.53 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.64/17.53 U143(mark(X)) -> mark(U143(X)) 64.64/17.53 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.64/17.53 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.64/17.53 U153(mark(X)) -> mark(U153(X)) 64.64/17.53 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.64/17.53 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.64/17.53 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.64/17.53 s(mark(X)) -> mark(s(X)) 64.64/17.53 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.64/17.53 head(mark(X)) -> mark(head(X)) 64.64/17.53 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.64/17.53 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.64/17.53 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.64/17.53 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.64/17.53 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.64/17.53 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.64/17.53 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.64/17.53 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.64/17.53 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.64/17.53 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.64/17.53 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.64/17.53 fst(mark(X)) -> mark(fst(X)) 64.64/17.53 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.64/17.53 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.64/17.53 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.64/17.53 U43(mark(X)) -> mark(U43(X)) 64.64/17.53 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.64/17.53 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.64/17.53 U53(mark(X)) -> mark(U53(X)) 64.64/17.53 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.64/17.53 U62(mark(X)) -> mark(U62(X)) 64.64/17.53 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.64/17.53 U72(mark(X)) -> mark(U72(X)) 64.64/17.53 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.64/17.53 U82(mark(X)) -> mark(U82(X)) 64.64/17.53 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.64/17.53 U92(mark(X)) -> mark(U92(X)) 64.64/17.53 and(mark(X1), X2) -> mark(and(X1, X2)) 64.64/17.53 tail(mark(X)) -> mark(tail(X)) 64.64/17.53 take(mark(X1), X2) -> mark(take(X1, X2)) 64.64/17.53 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.64/17.53 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.64/17.53 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.64/17.53 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(tt) -> ok(tt) 64.64/17.53 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.64/17.53 proper(isNatural(X)) -> isNatural(proper(X)) 64.64/17.53 proper(U103(X)) -> U103(proper(X)) 64.64/17.53 proper(isLNat(X)) -> isLNat(proper(X)) 64.64/17.53 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(snd(X)) -> snd(proper(X)) 64.64/17.53 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.64/17.53 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.64/17.53 proper(U112(X)) -> U112(proper(X)) 64.64/17.53 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.64/17.53 proper(U122(X)) -> U122(proper(X)) 64.64/17.53 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.64/17.53 proper(U133(X)) -> U133(proper(X)) 64.64/17.53 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.64/17.53 proper(U143(X)) -> U143(proper(X)) 64.64/17.53 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.64/17.53 proper(U153(X)) -> U153(proper(X)) 64.64/17.53 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.64/17.53 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.64/17.53 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.64/17.53 proper(s(X)) -> s(proper(X)) 64.64/17.53 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(head(X)) -> head(proper(X)) 64.64/17.53 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.64/17.53 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.64/17.53 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.64/17.53 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.64/17.53 proper(nil) -> ok(nil) 64.64/17.53 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.64/17.53 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.64/17.53 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.64/17.53 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.64/17.53 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(fst(X)) -> fst(proper(X)) 64.64/17.53 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.64/17.53 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.64/17.53 proper(U43(X)) -> U43(proper(X)) 64.64/17.53 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.64/17.53 proper(U53(X)) -> U53(proper(X)) 64.64/17.53 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.64/17.53 proper(U62(X)) -> U62(proper(X)) 64.64/17.53 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.64/17.53 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.64/17.53 proper(U72(X)) -> U72(proper(X)) 64.64/17.53 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.64/17.53 proper(U82(X)) -> U82(proper(X)) 64.64/17.53 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.64/17.53 proper(U92(X)) -> U92(proper(X)) 64.64/17.53 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.64/17.53 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.64/17.53 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.64/17.53 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.64/17.53 proper(tail(X)) -> tail(proper(X)) 64.64/17.53 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.64/17.53 proper(0') -> ok(0') 64.64/17.53 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.64/17.53 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.64/17.53 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.64/17.53 isNatural(ok(X)) -> ok(isNatural(X)) 64.64/17.53 U103(ok(X)) -> ok(U103(X)) 64.64/17.53 isLNat(ok(X)) -> ok(isLNat(X)) 64.64/17.53 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.64/17.53 snd(ok(X)) -> ok(snd(X)) 64.64/17.53 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.64/17.53 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.64/17.53 U112(ok(X)) -> ok(U112(X)) 64.64/17.53 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.64/17.53 U122(ok(X)) -> ok(U122(X)) 64.64/17.53 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.64/17.53 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.64/17.53 U133(ok(X)) -> ok(U133(X)) 64.64/17.53 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.64/17.53 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.64/17.53 U143(ok(X)) -> ok(U143(X)) 64.64/17.53 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.64/17.53 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.64/17.53 U153(ok(X)) -> ok(U153(X)) 64.64/17.53 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.64/17.53 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.64/17.53 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.64/17.53 s(ok(X)) -> ok(s(X)) 64.64/17.53 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.64/17.53 head(ok(X)) -> ok(head(X)) 64.64/17.53 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.64/17.53 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.64/17.53 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.64/17.53 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.64/17.53 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.64/17.53 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.64/17.53 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.64/17.53 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.64/17.53 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.64/17.53 fst(ok(X)) -> ok(fst(X)) 64.64/17.53 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.64/17.53 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.64/17.53 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.64/17.53 U43(ok(X)) -> ok(U43(X)) 64.64/17.53 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.64/17.53 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.64/17.53 U53(ok(X)) -> ok(U53(X)) 64.64/17.53 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.64/17.53 U62(ok(X)) -> ok(U62(X)) 64.64/17.53 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.64/17.53 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.64/17.53 U72(ok(X)) -> ok(U72(X)) 64.64/17.53 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.64/17.53 U82(ok(X)) -> ok(U82(X)) 64.64/17.53 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.64/17.53 U92(ok(X)) -> ok(U92(X)) 64.64/17.53 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.64/17.53 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.64/17.53 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.64/17.53 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.64/17.53 tail(ok(X)) -> ok(tail(X)) 64.64/17.53 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.64/17.53 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.64/17.53 top(mark(X)) -> top(proper(X)) 64.64/17.53 top(ok(X)) -> top(active(X)) 64.64/17.53 64.64/17.53 Types: 64.64/17.53 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 tt :: tt:mark:nil:0':ok 64.64/17.53 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 nil :: tt:mark:nil:0':ok 64.64/17.53 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 0' :: tt:mark:nil:0':ok 64.64/17.53 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 top :: tt:mark:nil:0':ok -> top 64.64/17.53 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.64/17.53 hole_top2_0 :: top 64.64/17.53 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.64/17.53 64.64/17.53 64.64/17.53 Lemmas: 64.64/17.53 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.64/17.53 64.64/17.53 64.64/17.53 Generator Equations: 64.64/17.53 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.64/17.53 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.64/17.53 64.64/17.53 64.64/17.53 The following defined symbols remain to be analysed: 64.64/17.53 isNatural, active, U103, isLNat, snd, splitAt, U112, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.64/17.53 64.64/17.53 They will be analysed ascendingly in the following order: 64.64/17.53 isNatural < active 64.64/17.53 U103 < active 64.64/17.53 isLNat < active 64.64/17.53 snd < active 64.64/17.53 splitAt < active 64.64/17.53 U112 < active 64.64/17.53 U122 < active 64.64/17.53 U132 < active 64.64/17.53 U133 < active 64.64/17.53 U142 < active 64.64/17.53 U143 < active 64.64/17.53 U152 < active 64.64/17.53 U153 < active 64.64/17.53 cons < active 64.64/17.53 natsFrom < active 64.64/17.53 s < active 64.64/17.53 head < active 64.64/17.53 afterNth < active 64.64/17.53 pair < active 64.64/17.53 U202 < active 64.64/17.53 fst < active 64.64/17.53 U42 < active 64.64/17.53 U43 < active 64.64/17.53 U52 < active 64.64/17.53 U53 < active 64.64/17.53 U62 < active 64.64/17.53 isPLNat < active 64.64/17.53 U72 < active 64.64/17.53 U82 < active 64.64/17.53 U92 < active 64.64/17.53 U11 < active 64.64/17.53 and < active 64.64/17.53 isNaturalKind < active 64.64/17.53 isLNatKind < active 64.64/17.53 U21 < active 64.64/17.53 U31 < active 64.64/17.53 U41 < active 64.64/17.53 U51 < active 64.64/17.53 U61 < active 64.64/17.53 isPLNatKind < active 64.64/17.53 U71 < active 64.64/17.53 U81 < active 64.64/17.53 U91 < active 64.64/17.53 U101 < active 64.64/17.53 U111 < active 64.64/17.53 U121 < active 64.64/17.53 U131 < active 64.64/17.53 U141 < active 64.64/17.53 U151 < active 64.64/17.53 U161 < active 64.64/17.53 U171 < active 64.64/17.53 U181 < active 64.64/17.53 U191 < active 64.64/17.53 U201 < active 64.64/17.53 U211 < active 64.64/17.53 U221 < active 64.64/17.53 tail < active 64.64/17.53 take < active 64.64/17.53 sel < active 64.64/17.53 active < top 64.64/17.53 isNatural < proper 64.64/17.53 U103 < proper 64.64/17.53 isLNat < proper 64.64/17.53 snd < proper 64.64/17.53 splitAt < proper 64.64/17.53 U112 < proper 64.64/17.53 U122 < proper 64.64/17.53 U132 < proper 64.64/17.53 U133 < proper 64.64/17.53 U142 < proper 64.64/17.53 U143 < proper 64.64/17.53 U152 < proper 64.64/17.53 U153 < proper 64.64/17.53 cons < proper 64.64/17.53 natsFrom < proper 64.64/17.53 s < proper 64.64/17.53 head < proper 64.64/17.53 afterNth < proper 64.64/17.53 pair < proper 64.64/17.53 U202 < proper 64.64/17.53 fst < proper 64.64/17.53 U42 < proper 64.64/17.53 U43 < proper 64.64/17.53 U52 < proper 64.64/17.53 U53 < proper 64.64/17.53 U62 < proper 64.64/17.53 isPLNat < proper 64.64/17.53 U72 < proper 64.64/17.53 U82 < proper 64.64/17.53 U92 < proper 64.64/17.53 U11 < proper 64.64/17.53 and < proper 64.64/17.53 isNaturalKind < proper 64.64/17.53 isLNatKind < proper 64.64/17.53 U21 < proper 64.64/17.53 U31 < proper 64.64/17.53 U41 < proper 64.64/17.53 U51 < proper 64.64/17.53 U61 < proper 64.64/17.53 isPLNatKind < proper 64.64/17.53 U71 < proper 64.64/17.53 U81 < proper 64.64/17.53 U91 < proper 64.64/17.53 U101 < proper 64.64/17.53 U111 < proper 64.64/17.53 U121 < proper 64.64/17.53 U131 < proper 64.64/17.53 U141 < proper 64.64/17.53 U151 < proper 64.64/17.53 U161 < proper 64.64/17.53 U171 < proper 64.64/17.53 U181 < proper 64.64/17.53 U191 < proper 64.64/17.53 U201 < proper 64.64/17.53 U211 < proper 64.64/17.53 U221 < proper 64.64/17.53 tail < proper 64.64/17.53 take < proper 64.64/17.53 sel < proper 64.64/17.53 proper < top 64.64/17.53 64.64/17.53 ---------------------------------------- 64.64/17.53 64.64/17.53 (31) RewriteLemmaProof (LOWER BOUND(ID)) 64.64/17.53 Proved the following rewrite lemma: 64.64/17.53 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.64/17.53 64.64/17.53 Induction Base: 64.64/17.53 U103(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.64/17.53 64.64/17.53 Induction Step: 64.64/17.53 U103(gen_tt:mark:nil:0':ok3_0(+(1, +(n4971_0, 1)))) ->_R^Omega(1) 64.64/17.53 mark(U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0)))) ->_IH 64.64/17.53 mark(*4_0) 64.64/17.53 64.64/17.53 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.64/17.53 ---------------------------------------- 64.64/17.53 64.64/17.53 (32) 64.64/17.53 Obligation: 64.64/17.53 TRS: 64.64/17.53 Rules: 64.64/17.53 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.64/17.53 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.64/17.53 active(U103(tt)) -> mark(tt) 64.64/17.53 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.64/17.53 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.64/17.53 active(U112(tt)) -> mark(tt) 64.64/17.53 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.64/17.53 active(U122(tt)) -> mark(tt) 64.64/17.53 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.64/17.53 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.64/17.53 active(U133(tt)) -> mark(tt) 64.64/17.53 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.64/17.53 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.64/17.53 active(U143(tt)) -> mark(tt) 64.64/17.53 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.64/17.53 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.64/17.53 active(U153(tt)) -> mark(tt) 64.64/17.53 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.64/17.53 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.64/17.53 active(U181(tt, Y)) -> mark(Y) 64.64/17.53 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.64/17.53 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.64/17.53 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.64/17.53 active(U21(tt, X)) -> mark(X) 64.64/17.53 active(U211(tt, XS)) -> mark(XS) 64.64/17.53 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.64/17.53 active(U31(tt, N)) -> mark(N) 64.64/17.53 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.64/17.53 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.64/17.53 active(U43(tt)) -> mark(tt) 64.64/17.53 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.64/17.53 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.64/17.53 active(U53(tt)) -> mark(tt) 64.64/17.53 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.64/17.53 active(U62(tt)) -> mark(tt) 64.64/17.53 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.64/17.53 active(U72(tt)) -> mark(tt) 64.64/17.53 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.64/17.53 active(U82(tt)) -> mark(tt) 64.64/17.53 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.64/17.53 active(U92(tt)) -> mark(tt) 64.64/17.53 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(and(tt, X)) -> mark(X) 64.64/17.53 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.64/17.53 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.64/17.53 active(isLNat(nil)) -> mark(tt) 64.64/17.53 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.64/17.53 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.64/17.53 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.64/17.53 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.64/17.53 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNatKind(nil)) -> mark(tt) 64.64/17.53 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isNatural(0')) -> mark(tt) 64.64/17.53 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.64/17.53 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.64/17.53 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isNaturalKind(0')) -> mark(tt) 64.64/17.53 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.64/17.53 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.64/17.53 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.64/17.53 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.64/17.53 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.64/17.53 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.64/17.53 active(U102(X1, X2)) -> U102(active(X1), X2) 64.64/17.53 active(U103(X)) -> U103(active(X)) 64.64/17.53 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.64/17.53 active(snd(X)) -> snd(active(X)) 64.64/17.53 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.64/17.53 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.64/17.53 active(U111(X1, X2)) -> U111(active(X1), X2) 64.64/17.53 active(U112(X)) -> U112(active(X)) 64.64/17.53 active(U121(X1, X2)) -> U121(active(X1), X2) 64.64/17.53 active(U122(X)) -> U122(active(X)) 64.64/17.53 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.64/17.53 active(U132(X1, X2)) -> U132(active(X1), X2) 64.64/17.53 active(U133(X)) -> U133(active(X)) 64.64/17.53 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.64/17.53 active(U142(X1, X2)) -> U142(active(X1), X2) 64.64/17.53 active(U143(X)) -> U143(active(X)) 64.64/17.53 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.64/17.53 active(U152(X1, X2)) -> U152(active(X1), X2) 64.64/17.53 active(U153(X)) -> U153(active(X)) 64.64/17.53 active(U161(X1, X2)) -> U161(active(X1), X2) 64.64/17.53 active(cons(X1, X2)) -> cons(active(X1), X2) 64.64/17.53 active(natsFrom(X)) -> natsFrom(active(X)) 64.64/17.53 active(s(X)) -> s(active(X)) 64.64/17.53 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.64/17.53 active(head(X)) -> head(active(X)) 64.64/17.53 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.64/17.53 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.64/17.53 active(U181(X1, X2)) -> U181(active(X1), X2) 64.64/17.53 active(U191(X1, X2)) -> U191(active(X1), X2) 64.64/17.53 active(pair(X1, X2)) -> pair(active(X1), X2) 64.64/17.53 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.64/17.53 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.64/17.53 active(U202(X1, X2)) -> U202(active(X1), X2) 64.64/17.53 active(U21(X1, X2)) -> U21(active(X1), X2) 64.64/17.53 active(U211(X1, X2)) -> U211(active(X1), X2) 64.64/17.53 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.64/17.53 active(fst(X)) -> fst(active(X)) 64.64/17.53 active(U31(X1, X2)) -> U31(active(X1), X2) 64.64/17.53 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.64/17.53 active(U42(X1, X2)) -> U42(active(X1), X2) 64.64/17.53 active(U43(X)) -> U43(active(X)) 64.64/17.53 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.64/17.53 active(U52(X1, X2)) -> U52(active(X1), X2) 64.64/17.53 active(U53(X)) -> U53(active(X)) 64.64/17.53 active(U61(X1, X2)) -> U61(active(X1), X2) 64.64/17.53 active(U62(X)) -> U62(active(X)) 64.64/17.53 active(U71(X1, X2)) -> U71(active(X1), X2) 64.64/17.53 active(U72(X)) -> U72(active(X)) 64.64/17.53 active(U81(X1, X2)) -> U81(active(X1), X2) 64.64/17.53 active(U82(X)) -> U82(active(X)) 64.64/17.53 active(U91(X1, X2)) -> U91(active(X1), X2) 64.64/17.53 active(U92(X)) -> U92(active(X)) 64.64/17.53 active(and(X1, X2)) -> and(active(X1), X2) 64.64/17.53 active(tail(X)) -> tail(active(X)) 64.64/17.53 active(take(X1, X2)) -> take(active(X1), X2) 64.64/17.53 active(take(X1, X2)) -> take(X1, active(X2)) 64.64/17.53 active(sel(X1, X2)) -> sel(active(X1), X2) 64.64/17.53 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.64/17.53 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.64/17.53 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.64/17.53 U103(mark(X)) -> mark(U103(X)) 64.64/17.53 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.64/17.53 snd(mark(X)) -> mark(snd(X)) 64.64/17.53 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.64/17.53 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.64/17.53 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.64/17.53 U112(mark(X)) -> mark(U112(X)) 64.64/17.53 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.64/17.53 U122(mark(X)) -> mark(U122(X)) 64.64/17.53 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.64/17.53 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.64/17.53 U133(mark(X)) -> mark(U133(X)) 64.64/17.53 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.64/17.53 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.64/17.53 U143(mark(X)) -> mark(U143(X)) 64.64/17.53 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.64/17.53 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.64/17.53 U153(mark(X)) -> mark(U153(X)) 64.64/17.53 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.64/17.53 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.64/17.53 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.64/17.53 s(mark(X)) -> mark(s(X)) 64.64/17.53 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.64/17.53 head(mark(X)) -> mark(head(X)) 64.64/17.53 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.64/17.53 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.64/17.53 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.64/17.53 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.64/17.53 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.64/17.53 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.64/17.53 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.64/17.53 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.64/17.53 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.64/17.53 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.64/17.53 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.64/17.53 fst(mark(X)) -> mark(fst(X)) 64.64/17.53 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.64/17.53 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.64/17.53 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.64/17.53 U43(mark(X)) -> mark(U43(X)) 64.64/17.53 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.64/17.53 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.64/17.53 U53(mark(X)) -> mark(U53(X)) 64.64/17.53 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.64/17.53 U62(mark(X)) -> mark(U62(X)) 64.64/17.53 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.64/17.53 U72(mark(X)) -> mark(U72(X)) 64.64/17.53 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.64/17.53 U82(mark(X)) -> mark(U82(X)) 64.64/17.53 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.64/17.53 U92(mark(X)) -> mark(U92(X)) 64.64/17.53 and(mark(X1), X2) -> mark(and(X1, X2)) 64.64/17.53 tail(mark(X)) -> mark(tail(X)) 64.64/17.53 take(mark(X1), X2) -> mark(take(X1, X2)) 64.64/17.53 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.64/17.53 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.64/17.53 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.64/17.53 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(tt) -> ok(tt) 64.64/17.53 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.64/17.53 proper(isNatural(X)) -> isNatural(proper(X)) 64.64/17.53 proper(U103(X)) -> U103(proper(X)) 64.64/17.53 proper(isLNat(X)) -> isLNat(proper(X)) 64.64/17.53 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(snd(X)) -> snd(proper(X)) 64.64/17.53 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.64/17.53 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.64/17.53 proper(U112(X)) -> U112(proper(X)) 64.64/17.53 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.64/17.53 proper(U122(X)) -> U122(proper(X)) 64.64/17.53 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.64/17.53 proper(U133(X)) -> U133(proper(X)) 64.64/17.53 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.64/17.53 proper(U143(X)) -> U143(proper(X)) 64.64/17.53 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.64/17.53 proper(U153(X)) -> U153(proper(X)) 64.64/17.53 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.64/17.53 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.64/17.53 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.64/17.53 proper(s(X)) -> s(proper(X)) 64.64/17.53 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(head(X)) -> head(proper(X)) 64.64/17.53 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.64/17.53 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.64/17.53 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.64/17.53 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.64/17.53 proper(nil) -> ok(nil) 64.64/17.53 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.64/17.53 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.64/17.53 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.64/17.53 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.64/17.53 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(fst(X)) -> fst(proper(X)) 64.64/17.53 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.64/17.53 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.64/17.53 proper(U43(X)) -> U43(proper(X)) 64.64/17.53 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.64/17.53 proper(U53(X)) -> U53(proper(X)) 64.64/17.53 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.64/17.53 proper(U62(X)) -> U62(proper(X)) 64.64/17.53 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.64/17.53 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.64/17.53 proper(U72(X)) -> U72(proper(X)) 64.64/17.53 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.64/17.53 proper(U82(X)) -> U82(proper(X)) 64.64/17.53 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.64/17.53 proper(U92(X)) -> U92(proper(X)) 64.64/17.53 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.64/17.53 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.64/17.53 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.64/17.53 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.64/17.53 proper(tail(X)) -> tail(proper(X)) 64.64/17.53 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.64/17.53 proper(0') -> ok(0') 64.64/17.53 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.64/17.53 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.64/17.53 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.64/17.53 isNatural(ok(X)) -> ok(isNatural(X)) 64.64/17.53 U103(ok(X)) -> ok(U103(X)) 64.64/17.53 isLNat(ok(X)) -> ok(isLNat(X)) 64.64/17.53 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.64/17.53 snd(ok(X)) -> ok(snd(X)) 64.64/17.53 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.64/17.53 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.64/17.53 U112(ok(X)) -> ok(U112(X)) 64.64/17.53 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.64/17.53 U122(ok(X)) -> ok(U122(X)) 64.64/17.53 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.64/17.53 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.64/17.53 U133(ok(X)) -> ok(U133(X)) 64.64/17.53 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.64/17.53 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.64/17.53 U143(ok(X)) -> ok(U143(X)) 64.64/17.53 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.64/17.53 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.64/17.53 U153(ok(X)) -> ok(U153(X)) 64.64/17.53 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.64/17.53 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.64/17.53 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.64/17.53 s(ok(X)) -> ok(s(X)) 64.64/17.53 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.64/17.53 head(ok(X)) -> ok(head(X)) 64.64/17.53 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.64/17.53 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.64/17.53 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.64/17.53 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.64/17.53 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.64/17.53 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.64/17.53 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.64/17.53 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.64/17.53 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.64/17.53 fst(ok(X)) -> ok(fst(X)) 64.64/17.53 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.64/17.53 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.64/17.53 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.64/17.53 U43(ok(X)) -> ok(U43(X)) 64.64/17.53 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.64/17.53 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.64/17.53 U53(ok(X)) -> ok(U53(X)) 64.64/17.53 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.64/17.53 U62(ok(X)) -> ok(U62(X)) 64.64/17.53 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.64/17.53 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.64/17.53 U72(ok(X)) -> ok(U72(X)) 64.64/17.53 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.64/17.53 U82(ok(X)) -> ok(U82(X)) 64.64/17.53 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.64/17.53 U92(ok(X)) -> ok(U92(X)) 64.64/17.53 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.64/17.53 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.64/17.53 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.64/17.53 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.64/17.53 tail(ok(X)) -> ok(tail(X)) 64.64/17.53 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.64/17.53 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.64/17.53 top(mark(X)) -> top(proper(X)) 64.64/17.53 top(ok(X)) -> top(active(X)) 64.64/17.53 64.64/17.53 Types: 64.64/17.53 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 tt :: tt:mark:nil:0':ok 64.64/17.53 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 nil :: tt:mark:nil:0':ok 64.64/17.53 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 0' :: tt:mark:nil:0':ok 64.64/17.53 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 top :: tt:mark:nil:0':ok -> top 64.64/17.53 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.64/17.53 hole_top2_0 :: top 64.64/17.53 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.64/17.53 64.64/17.53 64.64/17.53 Lemmas: 64.64/17.53 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.64/17.53 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.64/17.53 64.64/17.53 64.64/17.53 Generator Equations: 64.64/17.53 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.64/17.53 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.64/17.53 64.64/17.53 64.64/17.53 The following defined symbols remain to be analysed: 64.64/17.53 isLNat, active, snd, splitAt, U112, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.64/17.53 64.64/17.53 They will be analysed ascendingly in the following order: 64.64/17.53 isLNat < active 64.64/17.53 snd < active 64.64/17.53 splitAt < active 64.64/17.53 U112 < active 64.64/17.53 U122 < active 64.64/17.53 U132 < active 64.64/17.53 U133 < active 64.64/17.53 U142 < active 64.64/17.53 U143 < active 64.64/17.53 U152 < active 64.64/17.53 U153 < active 64.64/17.53 cons < active 64.64/17.53 natsFrom < active 64.64/17.53 s < active 64.64/17.53 head < active 64.64/17.53 afterNth < active 64.64/17.53 pair < active 64.64/17.53 U202 < active 64.64/17.53 fst < active 64.64/17.53 U42 < active 64.64/17.53 U43 < active 64.64/17.53 U52 < active 64.64/17.53 U53 < active 64.64/17.53 U62 < active 64.64/17.53 isPLNat < active 64.64/17.53 U72 < active 64.64/17.53 U82 < active 64.64/17.53 U92 < active 64.64/17.53 U11 < active 64.64/17.53 and < active 64.64/17.53 isNaturalKind < active 64.64/17.53 isLNatKind < active 64.64/17.53 U21 < active 64.64/17.53 U31 < active 64.64/17.53 U41 < active 64.64/17.53 U51 < active 64.64/17.53 U61 < active 64.64/17.53 isPLNatKind < active 64.64/17.53 U71 < active 64.64/17.53 U81 < active 64.64/17.53 U91 < active 64.64/17.53 U101 < active 64.64/17.53 U111 < active 64.64/17.53 U121 < active 64.64/17.53 U131 < active 64.64/17.53 U141 < active 64.64/17.53 U151 < active 64.64/17.53 U161 < active 64.64/17.53 U171 < active 64.64/17.53 U181 < active 64.64/17.53 U191 < active 64.64/17.53 U201 < active 64.64/17.53 U211 < active 64.64/17.53 U221 < active 64.64/17.53 tail < active 64.64/17.53 take < active 64.64/17.53 sel < active 64.64/17.53 active < top 64.64/17.53 isLNat < proper 64.64/17.53 snd < proper 64.64/17.53 splitAt < proper 64.64/17.53 U112 < proper 64.64/17.53 U122 < proper 64.64/17.53 U132 < proper 64.64/17.53 U133 < proper 64.64/17.53 U142 < proper 64.64/17.53 U143 < proper 64.64/17.53 U152 < proper 64.64/17.53 U153 < proper 64.64/17.53 cons < proper 64.64/17.53 natsFrom < proper 64.64/17.53 s < proper 64.64/17.53 head < proper 64.64/17.53 afterNth < proper 64.64/17.53 pair < proper 64.64/17.53 U202 < proper 64.64/17.53 fst < proper 64.64/17.53 U42 < proper 64.64/17.53 U43 < proper 64.64/17.53 U52 < proper 64.64/17.53 U53 < proper 64.64/17.53 U62 < proper 64.64/17.53 isPLNat < proper 64.64/17.53 U72 < proper 64.64/17.53 U82 < proper 64.64/17.53 U92 < proper 64.64/17.53 U11 < proper 64.64/17.53 and < proper 64.64/17.53 isNaturalKind < proper 64.64/17.53 isLNatKind < proper 64.64/17.53 U21 < proper 64.64/17.53 U31 < proper 64.64/17.53 U41 < proper 64.64/17.53 U51 < proper 64.64/17.53 U61 < proper 64.64/17.53 isPLNatKind < proper 64.64/17.53 U71 < proper 64.64/17.53 U81 < proper 64.64/17.53 U91 < proper 64.64/17.53 U101 < proper 64.64/17.53 U111 < proper 64.64/17.53 U121 < proper 64.64/17.53 U131 < proper 64.64/17.53 U141 < proper 64.64/17.53 U151 < proper 64.64/17.53 U161 < proper 64.64/17.53 U171 < proper 64.64/17.53 U181 < proper 64.64/17.53 U191 < proper 64.64/17.53 U201 < proper 64.64/17.53 U211 < proper 64.64/17.53 U221 < proper 64.64/17.53 tail < proper 64.64/17.53 take < proper 64.64/17.53 sel < proper 64.64/17.53 proper < top 64.64/17.53 64.64/17.53 ---------------------------------------- 64.64/17.53 64.64/17.53 (33) RewriteLemmaProof (LOWER BOUND(ID)) 64.64/17.53 Proved the following rewrite lemma: 64.64/17.53 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.64/17.53 64.64/17.53 Induction Base: 64.64/17.53 snd(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.64/17.53 64.64/17.53 Induction Step: 64.64/17.53 snd(gen_tt:mark:nil:0':ok3_0(+(1, +(n6369_0, 1)))) ->_R^Omega(1) 64.64/17.53 mark(snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0)))) ->_IH 64.64/17.53 mark(*4_0) 64.64/17.53 64.64/17.53 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.64/17.53 ---------------------------------------- 64.64/17.53 64.64/17.53 (34) 64.64/17.53 Obligation: 64.64/17.53 TRS: 64.64/17.53 Rules: 64.64/17.53 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.64/17.53 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.64/17.53 active(U103(tt)) -> mark(tt) 64.64/17.53 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.64/17.53 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.64/17.53 active(U112(tt)) -> mark(tt) 64.64/17.53 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.64/17.53 active(U122(tt)) -> mark(tt) 64.64/17.53 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.64/17.53 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.64/17.53 active(U133(tt)) -> mark(tt) 64.64/17.53 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.64/17.53 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.64/17.53 active(U143(tt)) -> mark(tt) 64.64/17.53 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.64/17.53 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.64/17.53 active(U153(tt)) -> mark(tt) 64.64/17.53 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.64/17.53 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.64/17.53 active(U181(tt, Y)) -> mark(Y) 64.64/17.53 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.64/17.53 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.64/17.53 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.64/17.53 active(U21(tt, X)) -> mark(X) 64.64/17.53 active(U211(tt, XS)) -> mark(XS) 64.64/17.53 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.64/17.53 active(U31(tt, N)) -> mark(N) 64.64/17.53 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.64/17.53 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.64/17.53 active(U43(tt)) -> mark(tt) 64.64/17.53 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.64/17.53 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.64/17.53 active(U53(tt)) -> mark(tt) 64.64/17.53 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.64/17.53 active(U62(tt)) -> mark(tt) 64.64/17.53 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.64/17.53 active(U72(tt)) -> mark(tt) 64.64/17.53 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.64/17.53 active(U82(tt)) -> mark(tt) 64.64/17.53 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.64/17.53 active(U92(tt)) -> mark(tt) 64.64/17.53 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(and(tt, X)) -> mark(X) 64.64/17.53 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.64/17.53 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.64/17.53 active(isLNat(nil)) -> mark(tt) 64.64/17.53 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.64/17.53 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.64/17.53 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.64/17.53 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.64/17.53 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNatKind(nil)) -> mark(tt) 64.64/17.53 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isNatural(0')) -> mark(tt) 64.64/17.53 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.64/17.53 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.64/17.53 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isNaturalKind(0')) -> mark(tt) 64.64/17.53 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.64/17.53 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.64/17.53 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.64/17.53 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.64/17.53 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.64/17.53 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.64/17.53 active(U102(X1, X2)) -> U102(active(X1), X2) 64.64/17.53 active(U103(X)) -> U103(active(X)) 64.64/17.53 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.64/17.53 active(snd(X)) -> snd(active(X)) 64.64/17.53 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.64/17.53 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.64/17.53 active(U111(X1, X2)) -> U111(active(X1), X2) 64.64/17.53 active(U112(X)) -> U112(active(X)) 64.64/17.53 active(U121(X1, X2)) -> U121(active(X1), X2) 64.64/17.53 active(U122(X)) -> U122(active(X)) 64.64/17.53 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.64/17.53 active(U132(X1, X2)) -> U132(active(X1), X2) 64.64/17.53 active(U133(X)) -> U133(active(X)) 64.64/17.53 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.64/17.53 active(U142(X1, X2)) -> U142(active(X1), X2) 64.64/17.53 active(U143(X)) -> U143(active(X)) 64.64/17.53 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.64/17.53 active(U152(X1, X2)) -> U152(active(X1), X2) 64.64/17.53 active(U153(X)) -> U153(active(X)) 64.64/17.53 active(U161(X1, X2)) -> U161(active(X1), X2) 64.64/17.53 active(cons(X1, X2)) -> cons(active(X1), X2) 64.64/17.53 active(natsFrom(X)) -> natsFrom(active(X)) 64.64/17.53 active(s(X)) -> s(active(X)) 64.64/17.53 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.64/17.53 active(head(X)) -> head(active(X)) 64.64/17.53 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.64/17.53 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.64/17.53 active(U181(X1, X2)) -> U181(active(X1), X2) 64.64/17.53 active(U191(X1, X2)) -> U191(active(X1), X2) 64.64/17.53 active(pair(X1, X2)) -> pair(active(X1), X2) 64.64/17.53 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.64/17.53 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.64/17.53 active(U202(X1, X2)) -> U202(active(X1), X2) 64.64/17.53 active(U21(X1, X2)) -> U21(active(X1), X2) 64.64/17.53 active(U211(X1, X2)) -> U211(active(X1), X2) 64.64/17.53 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.64/17.53 active(fst(X)) -> fst(active(X)) 64.64/17.53 active(U31(X1, X2)) -> U31(active(X1), X2) 64.64/17.53 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.64/17.53 active(U42(X1, X2)) -> U42(active(X1), X2) 64.64/17.53 active(U43(X)) -> U43(active(X)) 64.64/17.53 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.64/17.53 active(U52(X1, X2)) -> U52(active(X1), X2) 64.64/17.53 active(U53(X)) -> U53(active(X)) 64.64/17.53 active(U61(X1, X2)) -> U61(active(X1), X2) 64.64/17.53 active(U62(X)) -> U62(active(X)) 64.64/17.53 active(U71(X1, X2)) -> U71(active(X1), X2) 64.64/17.53 active(U72(X)) -> U72(active(X)) 64.64/17.53 active(U81(X1, X2)) -> U81(active(X1), X2) 64.64/17.53 active(U82(X)) -> U82(active(X)) 64.64/17.53 active(U91(X1, X2)) -> U91(active(X1), X2) 64.64/17.53 active(U92(X)) -> U92(active(X)) 64.64/17.53 active(and(X1, X2)) -> and(active(X1), X2) 64.64/17.53 active(tail(X)) -> tail(active(X)) 64.64/17.53 active(take(X1, X2)) -> take(active(X1), X2) 64.64/17.53 active(take(X1, X2)) -> take(X1, active(X2)) 64.64/17.53 active(sel(X1, X2)) -> sel(active(X1), X2) 64.64/17.53 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.64/17.53 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.64/17.53 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.64/17.53 U103(mark(X)) -> mark(U103(X)) 64.64/17.53 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.64/17.53 snd(mark(X)) -> mark(snd(X)) 64.64/17.53 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.64/17.53 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.64/17.53 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.64/17.53 U112(mark(X)) -> mark(U112(X)) 64.64/17.53 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.64/17.53 U122(mark(X)) -> mark(U122(X)) 64.64/17.53 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.64/17.53 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.64/17.53 U133(mark(X)) -> mark(U133(X)) 64.64/17.53 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.64/17.53 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.64/17.53 U143(mark(X)) -> mark(U143(X)) 64.64/17.53 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.64/17.53 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.64/17.53 U153(mark(X)) -> mark(U153(X)) 64.64/17.53 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.64/17.53 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.64/17.53 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.64/17.53 s(mark(X)) -> mark(s(X)) 64.64/17.53 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.64/17.53 head(mark(X)) -> mark(head(X)) 64.64/17.53 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.64/17.53 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.64/17.53 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.64/17.53 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.64/17.53 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.64/17.53 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.64/17.53 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.64/17.53 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.64/17.53 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.64/17.53 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.64/17.53 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.64/17.53 fst(mark(X)) -> mark(fst(X)) 64.64/17.53 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.64/17.53 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.64/17.53 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.64/17.53 U43(mark(X)) -> mark(U43(X)) 64.64/17.53 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.64/17.53 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.64/17.53 U53(mark(X)) -> mark(U53(X)) 64.64/17.53 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.64/17.53 U62(mark(X)) -> mark(U62(X)) 64.64/17.53 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.64/17.53 U72(mark(X)) -> mark(U72(X)) 64.64/17.53 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.64/17.53 U82(mark(X)) -> mark(U82(X)) 64.64/17.53 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.64/17.53 U92(mark(X)) -> mark(U92(X)) 64.64/17.53 and(mark(X1), X2) -> mark(and(X1, X2)) 64.64/17.53 tail(mark(X)) -> mark(tail(X)) 64.64/17.53 take(mark(X1), X2) -> mark(take(X1, X2)) 64.64/17.53 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.64/17.53 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.64/17.53 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.64/17.53 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(tt) -> ok(tt) 64.64/17.53 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.64/17.53 proper(isNatural(X)) -> isNatural(proper(X)) 64.64/17.53 proper(U103(X)) -> U103(proper(X)) 64.64/17.53 proper(isLNat(X)) -> isLNat(proper(X)) 64.64/17.53 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(snd(X)) -> snd(proper(X)) 64.64/17.53 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.64/17.53 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.64/17.53 proper(U112(X)) -> U112(proper(X)) 64.64/17.53 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.64/17.53 proper(U122(X)) -> U122(proper(X)) 64.64/17.53 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.64/17.53 proper(U133(X)) -> U133(proper(X)) 64.64/17.53 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.64/17.53 proper(U143(X)) -> U143(proper(X)) 64.64/17.53 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.64/17.53 proper(U153(X)) -> U153(proper(X)) 64.64/17.53 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.64/17.53 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.64/17.53 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.64/17.53 proper(s(X)) -> s(proper(X)) 64.64/17.53 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(head(X)) -> head(proper(X)) 64.64/17.53 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.64/17.53 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.64/17.53 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.64/17.53 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.64/17.53 proper(nil) -> ok(nil) 64.64/17.53 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.64/17.53 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.64/17.53 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.64/17.53 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.64/17.53 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(fst(X)) -> fst(proper(X)) 64.64/17.53 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.64/17.53 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.64/17.53 proper(U43(X)) -> U43(proper(X)) 64.64/17.53 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.64/17.53 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.64/17.53 proper(U53(X)) -> U53(proper(X)) 64.64/17.53 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.64/17.53 proper(U62(X)) -> U62(proper(X)) 64.64/17.53 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.64/17.53 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.64/17.53 proper(U72(X)) -> U72(proper(X)) 64.64/17.53 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.64/17.53 proper(U82(X)) -> U82(proper(X)) 64.64/17.53 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.64/17.53 proper(U92(X)) -> U92(proper(X)) 64.64/17.53 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.64/17.53 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.64/17.53 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.64/17.53 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.64/17.53 proper(tail(X)) -> tail(proper(X)) 64.64/17.53 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.64/17.53 proper(0') -> ok(0') 64.64/17.53 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.64/17.53 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.64/17.53 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.64/17.53 isNatural(ok(X)) -> ok(isNatural(X)) 64.64/17.53 U103(ok(X)) -> ok(U103(X)) 64.64/17.53 isLNat(ok(X)) -> ok(isLNat(X)) 64.64/17.53 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.64/17.53 snd(ok(X)) -> ok(snd(X)) 64.64/17.53 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.64/17.53 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.64/17.53 U112(ok(X)) -> ok(U112(X)) 64.64/17.53 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.64/17.53 U122(ok(X)) -> ok(U122(X)) 64.64/17.53 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.64/17.53 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.64/17.53 U133(ok(X)) -> ok(U133(X)) 64.64/17.53 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.64/17.53 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.64/17.53 U143(ok(X)) -> ok(U143(X)) 64.64/17.53 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.64/17.53 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.64/17.53 U153(ok(X)) -> ok(U153(X)) 64.64/17.53 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.64/17.53 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.64/17.53 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.64/17.53 s(ok(X)) -> ok(s(X)) 64.64/17.53 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.64/17.53 head(ok(X)) -> ok(head(X)) 64.64/17.53 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.64/17.53 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.64/17.53 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.64/17.53 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.64/17.53 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.64/17.53 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.64/17.53 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.64/17.53 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.64/17.53 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.64/17.53 fst(ok(X)) -> ok(fst(X)) 64.64/17.53 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.64/17.53 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.64/17.53 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.64/17.53 U43(ok(X)) -> ok(U43(X)) 64.64/17.53 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.64/17.53 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.64/17.53 U53(ok(X)) -> ok(U53(X)) 64.64/17.53 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.64/17.53 U62(ok(X)) -> ok(U62(X)) 64.64/17.53 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.64/17.53 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.64/17.53 U72(ok(X)) -> ok(U72(X)) 64.64/17.53 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.64/17.53 U82(ok(X)) -> ok(U82(X)) 64.64/17.53 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.64/17.53 U92(ok(X)) -> ok(U92(X)) 64.64/17.53 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.64/17.53 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.64/17.53 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.64/17.53 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.64/17.53 tail(ok(X)) -> ok(tail(X)) 64.64/17.53 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.64/17.53 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.64/17.53 top(mark(X)) -> top(proper(X)) 64.64/17.53 top(ok(X)) -> top(active(X)) 64.64/17.53 64.64/17.53 Types: 64.64/17.53 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 tt :: tt:mark:nil:0':ok 64.64/17.53 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 nil :: tt:mark:nil:0':ok 64.64/17.53 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 0' :: tt:mark:nil:0':ok 64.64/17.53 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.64/17.53 top :: tt:mark:nil:0':ok -> top 64.64/17.53 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.64/17.53 hole_top2_0 :: top 64.64/17.53 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.64/17.53 64.64/17.53 64.64/17.53 Lemmas: 64.64/17.53 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.64/17.53 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.64/17.53 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.64/17.53 64.64/17.53 64.64/17.53 Generator Equations: 64.64/17.53 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.64/17.53 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.64/17.53 64.64/17.53 64.64/17.53 The following defined symbols remain to be analysed: 64.64/17.53 splitAt, active, U112, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.64/17.53 64.64/17.53 They will be analysed ascendingly in the following order: 64.64/17.53 splitAt < active 64.64/17.53 U112 < active 64.64/17.53 U122 < active 64.64/17.53 U132 < active 64.64/17.53 U133 < active 64.64/17.53 U142 < active 64.64/17.53 U143 < active 64.64/17.53 U152 < active 64.64/17.53 U153 < active 64.64/17.53 cons < active 64.64/17.53 natsFrom < active 64.64/17.53 s < active 64.64/17.53 head < active 64.64/17.53 afterNth < active 64.64/17.53 pair < active 64.64/17.53 U202 < active 64.64/17.53 fst < active 64.64/17.53 U42 < active 64.64/17.53 U43 < active 64.64/17.53 U52 < active 64.64/17.53 U53 < active 64.64/17.53 U62 < active 64.64/17.53 isPLNat < active 64.64/17.53 U72 < active 64.64/17.53 U82 < active 64.64/17.53 U92 < active 64.64/17.53 U11 < active 64.64/17.53 and < active 64.64/17.53 isNaturalKind < active 64.64/17.53 isLNatKind < active 64.64/17.53 U21 < active 64.64/17.53 U31 < active 64.64/17.53 U41 < active 64.64/17.53 U51 < active 64.64/17.53 U61 < active 64.64/17.53 isPLNatKind < active 64.64/17.53 U71 < active 64.64/17.53 U81 < active 64.64/17.53 U91 < active 64.64/17.53 U101 < active 64.64/17.53 U111 < active 64.64/17.53 U121 < active 64.64/17.53 U131 < active 64.64/17.53 U141 < active 64.64/17.53 U151 < active 64.64/17.53 U161 < active 64.64/17.53 U171 < active 64.64/17.53 U181 < active 64.64/17.53 U191 < active 64.64/17.53 U201 < active 64.64/17.53 U211 < active 64.64/17.53 U221 < active 64.64/17.53 tail < active 64.64/17.53 take < active 64.64/17.53 sel < active 64.64/17.53 active < top 64.64/17.53 splitAt < proper 64.64/17.53 U112 < proper 64.64/17.53 U122 < proper 64.64/17.53 U132 < proper 64.64/17.53 U133 < proper 64.64/17.53 U142 < proper 64.64/17.53 U143 < proper 64.64/17.53 U152 < proper 64.64/17.53 U153 < proper 64.64/17.53 cons < proper 64.64/17.53 natsFrom < proper 64.64/17.53 s < proper 64.64/17.53 head < proper 64.64/17.53 afterNth < proper 64.64/17.53 pair < proper 64.64/17.53 U202 < proper 64.64/17.53 fst < proper 64.64/17.53 U42 < proper 64.64/17.53 U43 < proper 64.64/17.53 U52 < proper 64.64/17.53 U53 < proper 64.64/17.53 U62 < proper 64.64/17.53 isPLNat < proper 64.64/17.53 U72 < proper 64.64/17.53 U82 < proper 64.64/17.53 U92 < proper 64.64/17.53 U11 < proper 64.64/17.53 and < proper 64.64/17.53 isNaturalKind < proper 64.64/17.53 isLNatKind < proper 64.64/17.53 U21 < proper 64.64/17.53 U31 < proper 64.64/17.53 U41 < proper 64.64/17.53 U51 < proper 64.64/17.53 U61 < proper 64.64/17.53 isPLNatKind < proper 64.64/17.53 U71 < proper 64.64/17.53 U81 < proper 64.64/17.53 U91 < proper 64.64/17.53 U101 < proper 64.64/17.53 U111 < proper 64.64/17.53 U121 < proper 64.64/17.53 U131 < proper 64.64/17.53 U141 < proper 64.64/17.53 U151 < proper 64.64/17.53 U161 < proper 64.64/17.53 U171 < proper 64.64/17.53 U181 < proper 64.64/17.53 U191 < proper 64.64/17.53 U201 < proper 64.64/17.53 U211 < proper 64.64/17.53 U221 < proper 64.64/17.53 tail < proper 64.64/17.53 take < proper 64.64/17.53 sel < proper 64.64/17.53 proper < top 64.64/17.53 64.64/17.53 ---------------------------------------- 64.64/17.53 64.64/17.53 (35) RewriteLemmaProof (LOWER BOUND(ID)) 64.64/17.53 Proved the following rewrite lemma: 64.64/17.53 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.64/17.53 64.64/17.53 Induction Base: 64.64/17.53 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.64/17.53 64.64/17.53 Induction Step: 64.64/17.53 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, +(n7856_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.64/17.53 mark(splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.64/17.53 mark(*4_0) 64.64/17.53 64.64/17.53 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.64/17.53 ---------------------------------------- 64.64/17.53 64.64/17.53 (36) 64.64/17.53 Obligation: 64.64/17.53 TRS: 64.64/17.53 Rules: 64.64/17.53 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.64/17.53 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.64/17.53 active(U103(tt)) -> mark(tt) 64.64/17.53 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.64/17.53 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.64/17.53 active(U112(tt)) -> mark(tt) 64.64/17.53 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.64/17.53 active(U122(tt)) -> mark(tt) 64.64/17.53 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.64/17.53 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.64/17.53 active(U133(tt)) -> mark(tt) 64.64/17.53 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.64/17.53 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.64/17.53 active(U143(tt)) -> mark(tt) 64.64/17.53 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.64/17.53 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.64/17.53 active(U153(tt)) -> mark(tt) 64.64/17.53 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.64/17.53 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.64/17.53 active(U181(tt, Y)) -> mark(Y) 64.64/17.53 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.64/17.53 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.64/17.53 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.64/17.53 active(U21(tt, X)) -> mark(X) 64.64/17.53 active(U211(tt, XS)) -> mark(XS) 64.64/17.53 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.64/17.53 active(U31(tt, N)) -> mark(N) 64.64/17.53 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.64/17.53 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.64/17.53 active(U43(tt)) -> mark(tt) 64.64/17.53 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.64/17.53 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.64/17.53 active(U53(tt)) -> mark(tt) 64.64/17.53 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.64/17.53 active(U62(tt)) -> mark(tt) 64.64/17.53 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.64/17.53 active(U72(tt)) -> mark(tt) 64.64/17.53 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.64/17.53 active(U82(tt)) -> mark(tt) 64.64/17.53 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.64/17.53 active(U92(tt)) -> mark(tt) 64.64/17.53 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(and(tt, X)) -> mark(X) 64.64/17.53 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.64/17.53 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.64/17.53 active(isLNat(nil)) -> mark(tt) 64.64/17.53 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.64/17.53 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.64/17.53 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.64/17.53 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.64/17.53 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isLNatKind(nil)) -> mark(tt) 64.64/17.53 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.64/17.53 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isNatural(0')) -> mark(tt) 64.64/17.53 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.64/17.53 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.64/17.53 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isNaturalKind(0')) -> mark(tt) 64.64/17.53 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.64/17.53 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.64/17.53 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.64/17.53 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.64/17.53 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.64/17.53 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.64/17.53 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.64/17.53 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.54 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.54 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.54 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.54 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.54 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.54 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.54 active(U103(X)) -> U103(active(X)) 64.70/17.54 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.54 active(snd(X)) -> snd(active(X)) 64.70/17.54 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.54 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.54 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.54 active(U112(X)) -> U112(active(X)) 64.70/17.54 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.54 active(U122(X)) -> U122(active(X)) 64.70/17.54 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.54 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.54 active(U133(X)) -> U133(active(X)) 64.70/17.54 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.54 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.54 active(U143(X)) -> U143(active(X)) 64.70/17.54 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.54 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.54 active(U153(X)) -> U153(active(X)) 64.70/17.54 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.54 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.54 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.54 active(s(X)) -> s(active(X)) 64.70/17.54 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.54 active(head(X)) -> head(active(X)) 64.70/17.54 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.54 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.54 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.54 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.54 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.54 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.54 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.54 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.54 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.54 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.54 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.54 active(fst(X)) -> fst(active(X)) 64.70/17.54 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.54 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.54 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.54 active(U43(X)) -> U43(active(X)) 64.70/17.54 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.54 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.54 active(U53(X)) -> U53(active(X)) 64.70/17.54 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.54 active(U62(X)) -> U62(active(X)) 64.70/17.54 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.54 active(U72(X)) -> U72(active(X)) 64.70/17.54 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.54 active(U82(X)) -> U82(active(X)) 64.70/17.54 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.54 active(U92(X)) -> U92(active(X)) 64.70/17.54 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.54 active(tail(X)) -> tail(active(X)) 64.70/17.54 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.54 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.54 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.54 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.54 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.54 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.54 U103(mark(X)) -> mark(U103(X)) 64.70/17.54 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.54 snd(mark(X)) -> mark(snd(X)) 64.70/17.54 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.54 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.54 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.54 U112(mark(X)) -> mark(U112(X)) 64.70/17.54 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.54 U122(mark(X)) -> mark(U122(X)) 64.70/17.54 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.54 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.54 U133(mark(X)) -> mark(U133(X)) 64.70/17.54 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.54 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.54 U143(mark(X)) -> mark(U143(X)) 64.70/17.54 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.54 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.54 U153(mark(X)) -> mark(U153(X)) 64.70/17.54 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.54 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.54 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.54 s(mark(X)) -> mark(s(X)) 64.70/17.54 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.54 head(mark(X)) -> mark(head(X)) 64.70/17.54 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.54 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.54 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.54 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.54 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.54 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.54 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.54 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.54 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.54 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.54 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.54 fst(mark(X)) -> mark(fst(X)) 64.70/17.54 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.54 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.54 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.54 U43(mark(X)) -> mark(U43(X)) 64.70/17.54 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.54 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.54 U53(mark(X)) -> mark(U53(X)) 64.70/17.54 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.54 U62(mark(X)) -> mark(U62(X)) 64.70/17.54 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.54 U72(mark(X)) -> mark(U72(X)) 64.70/17.54 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.54 U82(mark(X)) -> mark(U82(X)) 64.70/17.54 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.54 U92(mark(X)) -> mark(U92(X)) 64.70/17.54 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.54 tail(mark(X)) -> mark(tail(X)) 64.70/17.54 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.54 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.54 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.54 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.54 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(tt) -> ok(tt) 64.70/17.54 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.54 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.54 proper(U103(X)) -> U103(proper(X)) 64.70/17.54 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.54 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(snd(X)) -> snd(proper(X)) 64.70/17.54 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.54 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.54 proper(U112(X)) -> U112(proper(X)) 64.70/17.54 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.54 proper(U122(X)) -> U122(proper(X)) 64.70/17.54 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.54 proper(U133(X)) -> U133(proper(X)) 64.70/17.54 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.54 proper(U143(X)) -> U143(proper(X)) 64.70/17.54 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.54 proper(U153(X)) -> U153(proper(X)) 64.70/17.54 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.54 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.54 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.54 proper(s(X)) -> s(proper(X)) 64.70/17.54 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(head(X)) -> head(proper(X)) 64.70/17.54 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.54 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.54 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.54 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.54 proper(nil) -> ok(nil) 64.70/17.54 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.54 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.54 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.54 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.54 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(fst(X)) -> fst(proper(X)) 64.70/17.54 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.54 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.54 proper(U43(X)) -> U43(proper(X)) 64.70/17.54 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.54 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.54 proper(U53(X)) -> U53(proper(X)) 64.70/17.54 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.54 proper(U62(X)) -> U62(proper(X)) 64.70/17.54 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.54 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.54 proper(U72(X)) -> U72(proper(X)) 64.70/17.54 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.54 proper(U82(X)) -> U82(proper(X)) 64.70/17.54 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.54 proper(U92(X)) -> U92(proper(X)) 64.70/17.54 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.54 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.54 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.54 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.54 proper(tail(X)) -> tail(proper(X)) 64.70/17.54 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.54 proper(0') -> ok(0') 64.70/17.54 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.54 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.54 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.54 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.54 U103(ok(X)) -> ok(U103(X)) 64.70/17.54 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.54 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.54 snd(ok(X)) -> ok(snd(X)) 64.70/17.54 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.54 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.54 U112(ok(X)) -> ok(U112(X)) 64.70/17.54 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.54 U122(ok(X)) -> ok(U122(X)) 64.70/17.54 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.54 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.54 U133(ok(X)) -> ok(U133(X)) 64.70/17.54 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.54 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.54 U143(ok(X)) -> ok(U143(X)) 64.70/17.54 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.54 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.54 U153(ok(X)) -> ok(U153(X)) 64.70/17.54 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.54 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.54 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.54 s(ok(X)) -> ok(s(X)) 64.70/17.54 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.54 head(ok(X)) -> ok(head(X)) 64.70/17.54 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.54 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.54 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.54 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.54 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.54 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.54 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.54 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.54 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.54 fst(ok(X)) -> ok(fst(X)) 64.70/17.54 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.54 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.54 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.54 U43(ok(X)) -> ok(U43(X)) 64.70/17.54 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.54 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.54 U53(ok(X)) -> ok(U53(X)) 64.70/17.54 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.54 U62(ok(X)) -> ok(U62(X)) 64.70/17.54 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.54 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.54 U72(ok(X)) -> ok(U72(X)) 64.70/17.54 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.54 U82(ok(X)) -> ok(U82(X)) 64.70/17.54 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.54 U92(ok(X)) -> ok(U92(X)) 64.70/17.54 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.54 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.54 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.54 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.54 tail(ok(X)) -> ok(tail(X)) 64.70/17.54 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.54 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.54 top(mark(X)) -> top(proper(X)) 64.70/17.54 top(ok(X)) -> top(active(X)) 64.70/17.54 64.70/17.54 Types: 64.70/17.54 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 tt :: tt:mark:nil:0':ok 64.70/17.54 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 nil :: tt:mark:nil:0':ok 64.70/17.54 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 0' :: tt:mark:nil:0':ok 64.70/17.54 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.54 top :: tt:mark:nil:0':ok -> top 64.70/17.54 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.54 hole_top2_0 :: top 64.70/17.54 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.54 64.70/17.54 64.70/17.54 Lemmas: 64.70/17.54 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.54 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.54 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.54 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.54 64.70/17.54 64.70/17.54 Generator Equations: 64.70/17.54 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.54 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.54 64.70/17.54 64.70/17.54 The following defined symbols remain to be analysed: 64.70/17.54 U112, active, U122, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.54 64.70/17.54 They will be analysed ascendingly in the following order: 64.70/17.54 U112 < active 64.70/17.54 U122 < active 64.70/17.54 U132 < active 64.70/17.54 U133 < active 64.70/17.54 U142 < active 64.70/17.54 U143 < active 64.70/17.54 U152 < active 64.70/17.54 U153 < active 64.70/17.54 cons < active 64.70/17.54 natsFrom < active 64.70/17.54 s < active 64.70/17.54 head < active 64.70/17.54 afterNth < active 64.70/17.54 pair < active 64.70/17.54 U202 < active 64.70/17.54 fst < active 64.70/17.54 U42 < active 64.70/17.54 U43 < active 64.70/17.54 U52 < active 64.70/17.54 U53 < active 64.70/17.54 U62 < active 64.70/17.54 isPLNat < active 64.70/17.54 U72 < active 64.70/17.54 U82 < active 64.70/17.54 U92 < active 64.70/17.54 U11 < active 64.70/17.54 and < active 64.70/17.54 isNaturalKind < active 64.70/17.54 isLNatKind < active 64.70/17.54 U21 < active 64.70/17.54 U31 < active 64.70/17.54 U41 < active 64.70/17.54 U51 < active 64.70/17.54 U61 < active 64.70/17.54 isPLNatKind < active 64.70/17.54 U71 < active 64.70/17.54 U81 < active 64.70/17.54 U91 < active 64.70/17.54 U101 < active 64.70/17.54 U111 < active 64.70/17.54 U121 < active 64.70/17.54 U131 < active 64.70/17.54 U141 < active 64.70/17.54 U151 < active 64.70/17.54 U161 < active 64.70/17.54 U171 < active 64.70/17.54 U181 < active 64.70/17.54 U191 < active 64.70/17.54 U201 < active 64.70/17.54 U211 < active 64.70/17.54 U221 < active 64.70/17.54 tail < active 64.70/17.54 take < active 64.70/17.54 sel < active 64.70/17.54 active < top 64.70/17.54 U112 < proper 64.70/17.54 U122 < proper 64.70/17.54 U132 < proper 64.70/17.54 U133 < proper 64.70/17.54 U142 < proper 64.70/17.54 U143 < proper 64.70/17.54 U152 < proper 64.70/17.54 U153 < proper 64.70/17.54 cons < proper 64.70/17.54 natsFrom < proper 64.70/17.54 s < proper 64.70/17.54 head < proper 64.70/17.54 afterNth < proper 64.70/17.54 pair < proper 64.70/17.54 U202 < proper 64.70/17.54 fst < proper 64.70/17.54 U42 < proper 64.70/17.54 U43 < proper 64.70/17.54 U52 < proper 64.70/17.54 U53 < proper 64.70/17.54 U62 < proper 64.70/17.54 isPLNat < proper 64.70/17.54 U72 < proper 64.70/17.54 U82 < proper 64.70/17.54 U92 < proper 64.70/17.54 U11 < proper 64.70/17.54 and < proper 64.70/17.54 isNaturalKind < proper 64.70/17.54 isLNatKind < proper 64.70/17.54 U21 < proper 64.70/17.54 U31 < proper 64.70/17.54 U41 < proper 64.70/17.54 U51 < proper 64.70/17.54 U61 < proper 64.70/17.54 isPLNatKind < proper 64.70/17.54 U71 < proper 64.70/17.54 U81 < proper 64.70/17.54 U91 < proper 64.70/17.54 U101 < proper 64.70/17.54 U111 < proper 64.70/17.54 U121 < proper 64.70/17.54 U131 < proper 64.70/17.54 U141 < proper 64.70/17.54 U151 < proper 64.70/17.54 U161 < proper 64.70/17.54 U171 < proper 64.70/17.54 U181 < proper 64.70/17.54 U191 < proper 64.70/17.54 U201 < proper 64.70/17.54 U211 < proper 64.70/17.54 U221 < proper 64.70/17.54 tail < proper 64.70/17.54 take < proper 64.70/17.54 sel < proper 64.70/17.54 proper < top 64.70/17.54 64.70/17.54 ---------------------------------------- 64.70/17.54 64.70/17.54 (37) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.54 Proved the following rewrite lemma: 64.70/17.54 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.54 64.70/17.54 Induction Base: 64.70/17.54 U112(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.54 64.70/17.54 Induction Step: 64.70/17.54 U112(gen_tt:mark:nil:0':ok3_0(+(1, +(n13734_0, 1)))) ->_R^Omega(1) 64.70/17.54 mark(U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0)))) ->_IH 64.70/17.54 mark(*4_0) 64.70/17.54 64.70/17.54 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.54 ---------------------------------------- 64.70/17.54 64.70/17.54 (38) 64.70/17.54 Obligation: 64.70/17.54 TRS: 64.70/17.54 Rules: 64.70/17.54 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.54 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.54 active(U103(tt)) -> mark(tt) 64.70/17.54 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.54 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.54 active(U112(tt)) -> mark(tt) 64.70/17.54 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.55 active(U122(tt)) -> mark(tt) 64.70/17.55 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.55 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.55 active(U133(tt)) -> mark(tt) 64.70/17.55 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.55 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.55 active(U143(tt)) -> mark(tt) 64.70/17.55 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.55 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.55 active(U153(tt)) -> mark(tt) 64.70/17.55 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.55 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.55 active(U181(tt, Y)) -> mark(Y) 64.70/17.55 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.55 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.55 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.55 active(U21(tt, X)) -> mark(X) 64.70/17.55 active(U211(tt, XS)) -> mark(XS) 64.70/17.55 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.55 active(U31(tt, N)) -> mark(N) 64.70/17.55 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.55 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.55 active(U43(tt)) -> mark(tt) 64.70/17.55 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.55 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.55 active(U53(tt)) -> mark(tt) 64.70/17.55 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.55 active(U62(tt)) -> mark(tt) 64.70/17.55 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.55 active(U72(tt)) -> mark(tt) 64.70/17.55 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.55 active(U82(tt)) -> mark(tt) 64.70/17.55 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.55 active(U92(tt)) -> mark(tt) 64.70/17.55 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(and(tt, X)) -> mark(X) 64.70/17.55 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.55 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.55 active(isLNat(nil)) -> mark(tt) 64.70/17.55 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.55 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.55 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNatKind(nil)) -> mark(tt) 64.70/17.55 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isNatural(0')) -> mark(tt) 64.70/17.55 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.55 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.55 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isNaturalKind(0')) -> mark(tt) 64.70/17.55 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.55 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.55 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.55 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.55 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.55 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.55 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.55 active(U103(X)) -> U103(active(X)) 64.70/17.55 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.55 active(snd(X)) -> snd(active(X)) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.55 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.55 active(U112(X)) -> U112(active(X)) 64.70/17.55 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.55 active(U122(X)) -> U122(active(X)) 64.70/17.55 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.55 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.55 active(U133(X)) -> U133(active(X)) 64.70/17.55 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.55 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.55 active(U143(X)) -> U143(active(X)) 64.70/17.55 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.55 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.55 active(U153(X)) -> U153(active(X)) 64.70/17.55 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.55 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.55 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.55 active(s(X)) -> s(active(X)) 64.70/17.55 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.55 active(head(X)) -> head(active(X)) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.55 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.55 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.55 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.55 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.55 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.55 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.55 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.55 active(fst(X)) -> fst(active(X)) 64.70/17.55 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.55 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.55 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.55 active(U43(X)) -> U43(active(X)) 64.70/17.55 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.55 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.55 active(U53(X)) -> U53(active(X)) 64.70/17.55 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.55 active(U62(X)) -> U62(active(X)) 64.70/17.55 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.55 active(U72(X)) -> U72(active(X)) 64.70/17.55 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.55 active(U82(X)) -> U82(active(X)) 64.70/17.55 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.55 active(U92(X)) -> U92(active(X)) 64.70/17.55 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.55 active(tail(X)) -> tail(active(X)) 64.70/17.55 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.55 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.55 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.55 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.55 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.55 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.55 U103(mark(X)) -> mark(U103(X)) 64.70/17.55 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.55 snd(mark(X)) -> mark(snd(X)) 64.70/17.55 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.55 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.55 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.55 U112(mark(X)) -> mark(U112(X)) 64.70/17.55 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.55 U122(mark(X)) -> mark(U122(X)) 64.70/17.55 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.55 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.55 U133(mark(X)) -> mark(U133(X)) 64.70/17.55 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.55 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.55 U143(mark(X)) -> mark(U143(X)) 64.70/17.55 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.55 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.55 U153(mark(X)) -> mark(U153(X)) 64.70/17.55 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.55 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.55 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.55 s(mark(X)) -> mark(s(X)) 64.70/17.55 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.55 head(mark(X)) -> mark(head(X)) 64.70/17.55 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.55 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.55 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.55 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.55 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.55 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.55 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.55 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.55 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.55 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.55 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.55 fst(mark(X)) -> mark(fst(X)) 64.70/17.55 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.55 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.55 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.55 U43(mark(X)) -> mark(U43(X)) 64.70/17.55 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.55 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.55 U53(mark(X)) -> mark(U53(X)) 64.70/17.55 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.55 U62(mark(X)) -> mark(U62(X)) 64.70/17.55 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.55 U72(mark(X)) -> mark(U72(X)) 64.70/17.55 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.55 U82(mark(X)) -> mark(U82(X)) 64.70/17.55 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.55 U92(mark(X)) -> mark(U92(X)) 64.70/17.55 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.55 tail(mark(X)) -> mark(tail(X)) 64.70/17.55 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.55 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.55 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.55 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.55 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(tt) -> ok(tt) 64.70/17.55 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.55 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.55 proper(U103(X)) -> U103(proper(X)) 64.70/17.55 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.55 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(snd(X)) -> snd(proper(X)) 64.70/17.55 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.55 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.55 proper(U112(X)) -> U112(proper(X)) 64.70/17.55 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.55 proper(U122(X)) -> U122(proper(X)) 64.70/17.55 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.55 proper(U133(X)) -> U133(proper(X)) 64.70/17.55 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.55 proper(U143(X)) -> U143(proper(X)) 64.70/17.55 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.55 proper(U153(X)) -> U153(proper(X)) 64.70/17.55 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.55 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.55 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.55 proper(s(X)) -> s(proper(X)) 64.70/17.55 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(head(X)) -> head(proper(X)) 64.70/17.55 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.55 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.55 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.55 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.55 proper(nil) -> ok(nil) 64.70/17.55 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.55 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.55 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.55 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.55 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(fst(X)) -> fst(proper(X)) 64.70/17.55 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.55 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.55 proper(U43(X)) -> U43(proper(X)) 64.70/17.55 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.55 proper(U53(X)) -> U53(proper(X)) 64.70/17.55 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.55 proper(U62(X)) -> U62(proper(X)) 64.70/17.55 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.55 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.55 proper(U72(X)) -> U72(proper(X)) 64.70/17.55 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.55 proper(U82(X)) -> U82(proper(X)) 64.70/17.55 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.55 proper(U92(X)) -> U92(proper(X)) 64.70/17.55 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.55 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.55 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.55 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.55 proper(tail(X)) -> tail(proper(X)) 64.70/17.55 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.55 proper(0') -> ok(0') 64.70/17.55 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.55 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.55 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.55 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.55 U103(ok(X)) -> ok(U103(X)) 64.70/17.55 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.55 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.55 snd(ok(X)) -> ok(snd(X)) 64.70/17.55 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.55 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.55 U112(ok(X)) -> ok(U112(X)) 64.70/17.55 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.55 U122(ok(X)) -> ok(U122(X)) 64.70/17.55 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.55 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.55 U133(ok(X)) -> ok(U133(X)) 64.70/17.55 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.55 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.55 U143(ok(X)) -> ok(U143(X)) 64.70/17.55 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.55 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.55 U153(ok(X)) -> ok(U153(X)) 64.70/17.55 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.55 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.55 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.55 s(ok(X)) -> ok(s(X)) 64.70/17.55 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.55 head(ok(X)) -> ok(head(X)) 64.70/17.55 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.55 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.55 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.55 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.55 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.55 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.55 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.55 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.55 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.55 fst(ok(X)) -> ok(fst(X)) 64.70/17.55 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.55 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.55 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.55 U43(ok(X)) -> ok(U43(X)) 64.70/17.55 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.55 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.55 U53(ok(X)) -> ok(U53(X)) 64.70/17.55 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.55 U62(ok(X)) -> ok(U62(X)) 64.70/17.55 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.55 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.55 U72(ok(X)) -> ok(U72(X)) 64.70/17.55 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.55 U82(ok(X)) -> ok(U82(X)) 64.70/17.55 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.55 U92(ok(X)) -> ok(U92(X)) 64.70/17.55 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.55 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.55 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.55 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.55 tail(ok(X)) -> ok(tail(X)) 64.70/17.55 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.55 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.55 top(mark(X)) -> top(proper(X)) 64.70/17.55 top(ok(X)) -> top(active(X)) 64.70/17.55 64.70/17.55 Types: 64.70/17.55 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tt :: tt:mark:nil:0':ok 64.70/17.55 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 nil :: tt:mark:nil:0':ok 64.70/17.55 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 0' :: tt:mark:nil:0':ok 64.70/17.55 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 top :: tt:mark:nil:0':ok -> top 64.70/17.55 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.55 hole_top2_0 :: top 64.70/17.55 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.55 64.70/17.55 64.70/17.55 Lemmas: 64.70/17.55 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.55 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.55 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.55 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.55 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.55 64.70/17.55 64.70/17.55 Generator Equations: 64.70/17.55 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.55 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.55 64.70/17.55 64.70/17.55 The following defined symbols remain to be analysed: 64.70/17.55 U122, active, U132, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.55 64.70/17.55 They will be analysed ascendingly in the following order: 64.70/17.55 U122 < active 64.70/17.55 U132 < active 64.70/17.55 U133 < active 64.70/17.55 U142 < active 64.70/17.55 U143 < active 64.70/17.55 U152 < active 64.70/17.55 U153 < active 64.70/17.55 cons < active 64.70/17.55 natsFrom < active 64.70/17.55 s < active 64.70/17.55 head < active 64.70/17.55 afterNth < active 64.70/17.55 pair < active 64.70/17.55 U202 < active 64.70/17.55 fst < active 64.70/17.55 U42 < active 64.70/17.55 U43 < active 64.70/17.55 U52 < active 64.70/17.55 U53 < active 64.70/17.55 U62 < active 64.70/17.55 isPLNat < active 64.70/17.55 U72 < active 64.70/17.55 U82 < active 64.70/17.55 U92 < active 64.70/17.55 U11 < active 64.70/17.55 and < active 64.70/17.55 isNaturalKind < active 64.70/17.55 isLNatKind < active 64.70/17.55 U21 < active 64.70/17.55 U31 < active 64.70/17.55 U41 < active 64.70/17.55 U51 < active 64.70/17.55 U61 < active 64.70/17.55 isPLNatKind < active 64.70/17.55 U71 < active 64.70/17.55 U81 < active 64.70/17.55 U91 < active 64.70/17.55 U101 < active 64.70/17.55 U111 < active 64.70/17.55 U121 < active 64.70/17.55 U131 < active 64.70/17.55 U141 < active 64.70/17.55 U151 < active 64.70/17.55 U161 < active 64.70/17.55 U171 < active 64.70/17.55 U181 < active 64.70/17.55 U191 < active 64.70/17.55 U201 < active 64.70/17.55 U211 < active 64.70/17.55 U221 < active 64.70/17.55 tail < active 64.70/17.55 take < active 64.70/17.55 sel < active 64.70/17.55 active < top 64.70/17.55 U122 < proper 64.70/17.55 U132 < proper 64.70/17.55 U133 < proper 64.70/17.55 U142 < proper 64.70/17.55 U143 < proper 64.70/17.55 U152 < proper 64.70/17.55 U153 < proper 64.70/17.55 cons < proper 64.70/17.55 natsFrom < proper 64.70/17.55 s < proper 64.70/17.55 head < proper 64.70/17.55 afterNth < proper 64.70/17.55 pair < proper 64.70/17.55 U202 < proper 64.70/17.55 fst < proper 64.70/17.55 U42 < proper 64.70/17.55 U43 < proper 64.70/17.55 U52 < proper 64.70/17.55 U53 < proper 64.70/17.55 U62 < proper 64.70/17.55 isPLNat < proper 64.70/17.55 U72 < proper 64.70/17.55 U82 < proper 64.70/17.55 U92 < proper 64.70/17.55 U11 < proper 64.70/17.55 and < proper 64.70/17.55 isNaturalKind < proper 64.70/17.55 isLNatKind < proper 64.70/17.55 U21 < proper 64.70/17.55 U31 < proper 64.70/17.55 U41 < proper 64.70/17.55 U51 < proper 64.70/17.55 U61 < proper 64.70/17.55 isPLNatKind < proper 64.70/17.55 U71 < proper 64.70/17.55 U81 < proper 64.70/17.55 U91 < proper 64.70/17.55 U101 < proper 64.70/17.55 U111 < proper 64.70/17.55 U121 < proper 64.70/17.55 U131 < proper 64.70/17.55 U141 < proper 64.70/17.55 U151 < proper 64.70/17.55 U161 < proper 64.70/17.55 U171 < proper 64.70/17.55 U181 < proper 64.70/17.55 U191 < proper 64.70/17.55 U201 < proper 64.70/17.55 U211 < proper 64.70/17.55 U221 < proper 64.70/17.55 tail < proper 64.70/17.55 take < proper 64.70/17.55 sel < proper 64.70/17.55 proper < top 64.70/17.55 64.70/17.55 ---------------------------------------- 64.70/17.55 64.70/17.55 (39) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.55 Proved the following rewrite lemma: 64.70/17.55 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.55 64.70/17.55 Induction Base: 64.70/17.55 U122(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.55 64.70/17.55 Induction Step: 64.70/17.55 U122(gen_tt:mark:nil:0':ok3_0(+(1, +(n15472_0, 1)))) ->_R^Omega(1) 64.70/17.55 mark(U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0)))) ->_IH 64.70/17.55 mark(*4_0) 64.70/17.55 64.70/17.55 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.55 ---------------------------------------- 64.70/17.55 64.70/17.55 (40) 64.70/17.55 Obligation: 64.70/17.55 TRS: 64.70/17.55 Rules: 64.70/17.55 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.55 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.55 active(U103(tt)) -> mark(tt) 64.70/17.55 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.55 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.55 active(U112(tt)) -> mark(tt) 64.70/17.55 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.55 active(U122(tt)) -> mark(tt) 64.70/17.55 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.55 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.55 active(U133(tt)) -> mark(tt) 64.70/17.55 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.55 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.55 active(U143(tt)) -> mark(tt) 64.70/17.55 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.55 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.55 active(U153(tt)) -> mark(tt) 64.70/17.55 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.55 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.55 active(U181(tt, Y)) -> mark(Y) 64.70/17.55 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.55 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.55 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.55 active(U21(tt, X)) -> mark(X) 64.70/17.55 active(U211(tt, XS)) -> mark(XS) 64.70/17.55 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.55 active(U31(tt, N)) -> mark(N) 64.70/17.55 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.55 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.55 active(U43(tt)) -> mark(tt) 64.70/17.55 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.55 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.55 active(U53(tt)) -> mark(tt) 64.70/17.55 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.55 active(U62(tt)) -> mark(tt) 64.70/17.55 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.55 active(U72(tt)) -> mark(tt) 64.70/17.55 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.55 active(U82(tt)) -> mark(tt) 64.70/17.55 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.55 active(U92(tt)) -> mark(tt) 64.70/17.55 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(and(tt, X)) -> mark(X) 64.70/17.55 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.55 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.55 active(isLNat(nil)) -> mark(tt) 64.70/17.55 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.55 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.55 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNatKind(nil)) -> mark(tt) 64.70/17.55 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isNatural(0')) -> mark(tt) 64.70/17.55 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.55 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.55 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isNaturalKind(0')) -> mark(tt) 64.70/17.55 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.55 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.55 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.55 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.55 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.55 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.55 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.55 active(U103(X)) -> U103(active(X)) 64.70/17.55 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.55 active(snd(X)) -> snd(active(X)) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.55 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.55 active(U112(X)) -> U112(active(X)) 64.70/17.55 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.55 active(U122(X)) -> U122(active(X)) 64.70/17.55 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.55 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.55 active(U133(X)) -> U133(active(X)) 64.70/17.55 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.55 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.55 active(U143(X)) -> U143(active(X)) 64.70/17.55 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.55 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.55 active(U153(X)) -> U153(active(X)) 64.70/17.55 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.55 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.55 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.55 active(s(X)) -> s(active(X)) 64.70/17.55 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.55 active(head(X)) -> head(active(X)) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.55 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.55 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.55 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.55 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.55 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.55 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.55 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.55 active(fst(X)) -> fst(active(X)) 64.70/17.55 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.55 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.55 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.55 active(U43(X)) -> U43(active(X)) 64.70/17.55 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.55 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.55 active(U53(X)) -> U53(active(X)) 64.70/17.55 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.55 active(U62(X)) -> U62(active(X)) 64.70/17.55 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.55 active(U72(X)) -> U72(active(X)) 64.70/17.55 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.55 active(U82(X)) -> U82(active(X)) 64.70/17.55 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.55 active(U92(X)) -> U92(active(X)) 64.70/17.55 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.55 active(tail(X)) -> tail(active(X)) 64.70/17.55 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.55 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.55 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.55 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.55 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.55 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.55 U103(mark(X)) -> mark(U103(X)) 64.70/17.55 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.55 snd(mark(X)) -> mark(snd(X)) 64.70/17.55 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.55 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.55 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.55 U112(mark(X)) -> mark(U112(X)) 64.70/17.55 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.55 U122(mark(X)) -> mark(U122(X)) 64.70/17.55 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.55 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.55 U133(mark(X)) -> mark(U133(X)) 64.70/17.55 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.55 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.55 U143(mark(X)) -> mark(U143(X)) 64.70/17.55 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.55 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.55 U153(mark(X)) -> mark(U153(X)) 64.70/17.55 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.55 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.55 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.55 s(mark(X)) -> mark(s(X)) 64.70/17.55 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.55 head(mark(X)) -> mark(head(X)) 64.70/17.55 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.55 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.55 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.55 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.55 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.55 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.55 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.55 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.55 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.55 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.55 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.55 fst(mark(X)) -> mark(fst(X)) 64.70/17.55 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.55 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.55 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.55 U43(mark(X)) -> mark(U43(X)) 64.70/17.55 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.55 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.55 U53(mark(X)) -> mark(U53(X)) 64.70/17.55 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.55 U62(mark(X)) -> mark(U62(X)) 64.70/17.55 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.55 U72(mark(X)) -> mark(U72(X)) 64.70/17.55 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.55 U82(mark(X)) -> mark(U82(X)) 64.70/17.55 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.55 U92(mark(X)) -> mark(U92(X)) 64.70/17.55 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.55 tail(mark(X)) -> mark(tail(X)) 64.70/17.55 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.55 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.55 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.55 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.55 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(tt) -> ok(tt) 64.70/17.55 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.55 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.55 proper(U103(X)) -> U103(proper(X)) 64.70/17.55 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.55 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(snd(X)) -> snd(proper(X)) 64.70/17.55 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.55 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.55 proper(U112(X)) -> U112(proper(X)) 64.70/17.55 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.55 proper(U122(X)) -> U122(proper(X)) 64.70/17.55 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.55 proper(U133(X)) -> U133(proper(X)) 64.70/17.55 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.55 proper(U143(X)) -> U143(proper(X)) 64.70/17.55 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.55 proper(U153(X)) -> U153(proper(X)) 64.70/17.55 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.55 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.55 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.55 proper(s(X)) -> s(proper(X)) 64.70/17.55 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(head(X)) -> head(proper(X)) 64.70/17.55 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.55 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.55 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.55 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.55 proper(nil) -> ok(nil) 64.70/17.55 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.55 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.55 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.55 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.55 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(fst(X)) -> fst(proper(X)) 64.70/17.55 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.55 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.55 proper(U43(X)) -> U43(proper(X)) 64.70/17.55 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.55 proper(U53(X)) -> U53(proper(X)) 64.70/17.55 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.55 proper(U62(X)) -> U62(proper(X)) 64.70/17.55 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.55 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.55 proper(U72(X)) -> U72(proper(X)) 64.70/17.55 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.55 proper(U82(X)) -> U82(proper(X)) 64.70/17.55 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.55 proper(U92(X)) -> U92(proper(X)) 64.70/17.55 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.55 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.55 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.55 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.55 proper(tail(X)) -> tail(proper(X)) 64.70/17.55 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.55 proper(0') -> ok(0') 64.70/17.55 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.55 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.55 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.55 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.55 U103(ok(X)) -> ok(U103(X)) 64.70/17.55 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.55 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.55 snd(ok(X)) -> ok(snd(X)) 64.70/17.55 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.55 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.55 U112(ok(X)) -> ok(U112(X)) 64.70/17.55 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.55 U122(ok(X)) -> ok(U122(X)) 64.70/17.55 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.55 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.55 U133(ok(X)) -> ok(U133(X)) 64.70/17.55 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.55 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.55 U143(ok(X)) -> ok(U143(X)) 64.70/17.55 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.55 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.55 U153(ok(X)) -> ok(U153(X)) 64.70/17.55 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.55 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.55 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.55 s(ok(X)) -> ok(s(X)) 64.70/17.55 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.55 head(ok(X)) -> ok(head(X)) 64.70/17.55 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.55 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.55 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.55 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.55 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.55 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.55 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.55 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.55 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.55 fst(ok(X)) -> ok(fst(X)) 64.70/17.55 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.55 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.55 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.55 U43(ok(X)) -> ok(U43(X)) 64.70/17.55 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.55 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.55 U53(ok(X)) -> ok(U53(X)) 64.70/17.55 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.55 U62(ok(X)) -> ok(U62(X)) 64.70/17.55 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.55 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.55 U72(ok(X)) -> ok(U72(X)) 64.70/17.55 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.55 U82(ok(X)) -> ok(U82(X)) 64.70/17.55 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.55 U92(ok(X)) -> ok(U92(X)) 64.70/17.55 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.55 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.55 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.55 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.55 tail(ok(X)) -> ok(tail(X)) 64.70/17.55 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.55 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.55 top(mark(X)) -> top(proper(X)) 64.70/17.55 top(ok(X)) -> top(active(X)) 64.70/17.55 64.70/17.55 Types: 64.70/17.55 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tt :: tt:mark:nil:0':ok 64.70/17.55 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 nil :: tt:mark:nil:0':ok 64.70/17.55 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 0' :: tt:mark:nil:0':ok 64.70/17.55 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 top :: tt:mark:nil:0':ok -> top 64.70/17.55 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.55 hole_top2_0 :: top 64.70/17.55 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.55 64.70/17.55 64.70/17.55 Lemmas: 64.70/17.55 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.55 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.55 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.55 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.55 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.55 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.55 64.70/17.55 64.70/17.55 Generator Equations: 64.70/17.55 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.55 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.55 64.70/17.55 64.70/17.55 The following defined symbols remain to be analysed: 64.70/17.55 U132, active, U133, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.55 64.70/17.55 They will be analysed ascendingly in the following order: 64.70/17.55 U132 < active 64.70/17.55 U133 < active 64.70/17.55 U142 < active 64.70/17.55 U143 < active 64.70/17.55 U152 < active 64.70/17.55 U153 < active 64.70/17.55 cons < active 64.70/17.55 natsFrom < active 64.70/17.55 s < active 64.70/17.55 head < active 64.70/17.55 afterNth < active 64.70/17.55 pair < active 64.70/17.55 U202 < active 64.70/17.55 fst < active 64.70/17.55 U42 < active 64.70/17.55 U43 < active 64.70/17.55 U52 < active 64.70/17.55 U53 < active 64.70/17.55 U62 < active 64.70/17.55 isPLNat < active 64.70/17.55 U72 < active 64.70/17.55 U82 < active 64.70/17.55 U92 < active 64.70/17.55 U11 < active 64.70/17.55 and < active 64.70/17.55 isNaturalKind < active 64.70/17.55 isLNatKind < active 64.70/17.55 U21 < active 64.70/17.55 U31 < active 64.70/17.55 U41 < active 64.70/17.55 U51 < active 64.70/17.55 U61 < active 64.70/17.55 isPLNatKind < active 64.70/17.55 U71 < active 64.70/17.55 U81 < active 64.70/17.55 U91 < active 64.70/17.55 U101 < active 64.70/17.55 U111 < active 64.70/17.55 U121 < active 64.70/17.55 U131 < active 64.70/17.55 U141 < active 64.70/17.55 U151 < active 64.70/17.55 U161 < active 64.70/17.55 U171 < active 64.70/17.55 U181 < active 64.70/17.55 U191 < active 64.70/17.55 U201 < active 64.70/17.55 U211 < active 64.70/17.55 U221 < active 64.70/17.55 tail < active 64.70/17.55 take < active 64.70/17.55 sel < active 64.70/17.55 active < top 64.70/17.55 U132 < proper 64.70/17.55 U133 < proper 64.70/17.55 U142 < proper 64.70/17.55 U143 < proper 64.70/17.55 U152 < proper 64.70/17.55 U153 < proper 64.70/17.55 cons < proper 64.70/17.55 natsFrom < proper 64.70/17.55 s < proper 64.70/17.55 head < proper 64.70/17.55 afterNth < proper 64.70/17.55 pair < proper 64.70/17.55 U202 < proper 64.70/17.55 fst < proper 64.70/17.55 U42 < proper 64.70/17.55 U43 < proper 64.70/17.55 U52 < proper 64.70/17.55 U53 < proper 64.70/17.55 U62 < proper 64.70/17.55 isPLNat < proper 64.70/17.55 U72 < proper 64.70/17.55 U82 < proper 64.70/17.55 U92 < proper 64.70/17.55 U11 < proper 64.70/17.55 and < proper 64.70/17.55 isNaturalKind < proper 64.70/17.55 isLNatKind < proper 64.70/17.55 U21 < proper 64.70/17.55 U31 < proper 64.70/17.55 U41 < proper 64.70/17.55 U51 < proper 64.70/17.55 U61 < proper 64.70/17.55 isPLNatKind < proper 64.70/17.55 U71 < proper 64.70/17.55 U81 < proper 64.70/17.55 U91 < proper 64.70/17.55 U101 < proper 64.70/17.55 U111 < proper 64.70/17.55 U121 < proper 64.70/17.55 U131 < proper 64.70/17.55 U141 < proper 64.70/17.55 U151 < proper 64.70/17.55 U161 < proper 64.70/17.55 U171 < proper 64.70/17.55 U181 < proper 64.70/17.55 U191 < proper 64.70/17.55 U201 < proper 64.70/17.55 U211 < proper 64.70/17.55 U221 < proper 64.70/17.55 tail < proper 64.70/17.55 take < proper 64.70/17.55 sel < proper 64.70/17.55 proper < top 64.70/17.55 64.70/17.55 ---------------------------------------- 64.70/17.55 64.70/17.55 (41) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.55 Proved the following rewrite lemma: 64.70/17.55 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.55 64.70/17.55 Induction Base: 64.70/17.55 U132(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.55 64.70/17.55 Induction Step: 64.70/17.55 U132(gen_tt:mark:nil:0':ok3_0(+(1, +(n17311_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.55 mark(U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.55 mark(*4_0) 64.70/17.55 64.70/17.55 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.55 ---------------------------------------- 64.70/17.55 64.70/17.55 (42) 64.70/17.55 Obligation: 64.70/17.55 TRS: 64.70/17.55 Rules: 64.70/17.55 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.55 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.55 active(U103(tt)) -> mark(tt) 64.70/17.55 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.55 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.55 active(U112(tt)) -> mark(tt) 64.70/17.55 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.55 active(U122(tt)) -> mark(tt) 64.70/17.55 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.55 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.55 active(U133(tt)) -> mark(tt) 64.70/17.55 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.55 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.55 active(U143(tt)) -> mark(tt) 64.70/17.55 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.55 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.55 active(U153(tt)) -> mark(tt) 64.70/17.55 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.55 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.55 active(U181(tt, Y)) -> mark(Y) 64.70/17.55 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.55 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.55 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.55 active(U21(tt, X)) -> mark(X) 64.70/17.55 active(U211(tt, XS)) -> mark(XS) 64.70/17.55 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.55 active(U31(tt, N)) -> mark(N) 64.70/17.55 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.55 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.55 active(U43(tt)) -> mark(tt) 64.70/17.55 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.55 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.55 active(U53(tt)) -> mark(tt) 64.70/17.55 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.55 active(U62(tt)) -> mark(tt) 64.70/17.55 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.55 active(U72(tt)) -> mark(tt) 64.70/17.55 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.55 active(U82(tt)) -> mark(tt) 64.70/17.55 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.55 active(U92(tt)) -> mark(tt) 64.70/17.55 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(and(tt, X)) -> mark(X) 64.70/17.55 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.55 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.55 active(isLNat(nil)) -> mark(tt) 64.70/17.55 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.55 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.55 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNatKind(nil)) -> mark(tt) 64.70/17.55 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isNatural(0')) -> mark(tt) 64.70/17.55 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.55 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.55 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isNaturalKind(0')) -> mark(tt) 64.70/17.55 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.55 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.55 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.55 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.55 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.55 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.55 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.55 active(U103(X)) -> U103(active(X)) 64.70/17.55 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.55 active(snd(X)) -> snd(active(X)) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.55 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.55 active(U112(X)) -> U112(active(X)) 64.70/17.55 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.55 active(U122(X)) -> U122(active(X)) 64.70/17.55 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.55 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.55 active(U133(X)) -> U133(active(X)) 64.70/17.55 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.55 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.55 active(U143(X)) -> U143(active(X)) 64.70/17.55 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.55 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.55 active(U153(X)) -> U153(active(X)) 64.70/17.55 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.55 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.55 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.55 active(s(X)) -> s(active(X)) 64.70/17.55 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.55 active(head(X)) -> head(active(X)) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.55 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.55 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.55 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.55 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.55 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.55 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.55 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.55 active(fst(X)) -> fst(active(X)) 64.70/17.55 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.55 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.55 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.55 active(U43(X)) -> U43(active(X)) 64.70/17.55 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.55 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.55 active(U53(X)) -> U53(active(X)) 64.70/17.55 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.55 active(U62(X)) -> U62(active(X)) 64.70/17.55 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.55 active(U72(X)) -> U72(active(X)) 64.70/17.55 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.55 active(U82(X)) -> U82(active(X)) 64.70/17.55 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.55 active(U92(X)) -> U92(active(X)) 64.70/17.55 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.55 active(tail(X)) -> tail(active(X)) 64.70/17.55 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.55 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.55 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.55 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.55 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.55 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.55 U103(mark(X)) -> mark(U103(X)) 64.70/17.55 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.55 snd(mark(X)) -> mark(snd(X)) 64.70/17.55 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.55 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.55 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.55 U112(mark(X)) -> mark(U112(X)) 64.70/17.55 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.55 U122(mark(X)) -> mark(U122(X)) 64.70/17.55 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.55 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.55 U133(mark(X)) -> mark(U133(X)) 64.70/17.55 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.55 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.55 U143(mark(X)) -> mark(U143(X)) 64.70/17.55 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.55 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.55 U153(mark(X)) -> mark(U153(X)) 64.70/17.55 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.55 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.55 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.55 s(mark(X)) -> mark(s(X)) 64.70/17.55 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.55 head(mark(X)) -> mark(head(X)) 64.70/17.55 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.55 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.55 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.55 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.55 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.55 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.55 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.55 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.55 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.55 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.55 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.55 fst(mark(X)) -> mark(fst(X)) 64.70/17.55 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.55 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.55 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.55 U43(mark(X)) -> mark(U43(X)) 64.70/17.55 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.55 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.55 U53(mark(X)) -> mark(U53(X)) 64.70/17.55 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.55 U62(mark(X)) -> mark(U62(X)) 64.70/17.55 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.55 U72(mark(X)) -> mark(U72(X)) 64.70/17.55 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.55 U82(mark(X)) -> mark(U82(X)) 64.70/17.55 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.55 U92(mark(X)) -> mark(U92(X)) 64.70/17.55 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.55 tail(mark(X)) -> mark(tail(X)) 64.70/17.55 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.55 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.55 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.55 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.55 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(tt) -> ok(tt) 64.70/17.55 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.55 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.55 proper(U103(X)) -> U103(proper(X)) 64.70/17.55 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.55 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(snd(X)) -> snd(proper(X)) 64.70/17.55 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.55 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.55 proper(U112(X)) -> U112(proper(X)) 64.70/17.55 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.55 proper(U122(X)) -> U122(proper(X)) 64.70/17.55 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.55 proper(U133(X)) -> U133(proper(X)) 64.70/17.55 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.55 proper(U143(X)) -> U143(proper(X)) 64.70/17.55 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.55 proper(U153(X)) -> U153(proper(X)) 64.70/17.55 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.55 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.55 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.55 proper(s(X)) -> s(proper(X)) 64.70/17.55 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(head(X)) -> head(proper(X)) 64.70/17.55 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.55 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.55 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.55 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.55 proper(nil) -> ok(nil) 64.70/17.55 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.55 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.55 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.55 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.55 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(fst(X)) -> fst(proper(X)) 64.70/17.55 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.55 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.55 proper(U43(X)) -> U43(proper(X)) 64.70/17.55 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.55 proper(U53(X)) -> U53(proper(X)) 64.70/17.55 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.55 proper(U62(X)) -> U62(proper(X)) 64.70/17.55 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.55 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.55 proper(U72(X)) -> U72(proper(X)) 64.70/17.55 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.55 proper(U82(X)) -> U82(proper(X)) 64.70/17.55 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.55 proper(U92(X)) -> U92(proper(X)) 64.70/17.55 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.55 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.55 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.55 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.55 proper(tail(X)) -> tail(proper(X)) 64.70/17.55 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.55 proper(0') -> ok(0') 64.70/17.55 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.55 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.55 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.55 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.55 U103(ok(X)) -> ok(U103(X)) 64.70/17.55 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.55 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.55 snd(ok(X)) -> ok(snd(X)) 64.70/17.55 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.55 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.55 U112(ok(X)) -> ok(U112(X)) 64.70/17.55 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.55 U122(ok(X)) -> ok(U122(X)) 64.70/17.55 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.55 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.55 U133(ok(X)) -> ok(U133(X)) 64.70/17.55 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.55 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.55 U143(ok(X)) -> ok(U143(X)) 64.70/17.55 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.55 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.55 U153(ok(X)) -> ok(U153(X)) 64.70/17.55 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.55 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.55 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.55 s(ok(X)) -> ok(s(X)) 64.70/17.55 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.55 head(ok(X)) -> ok(head(X)) 64.70/17.55 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.55 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.55 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.55 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.55 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.55 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.55 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.55 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.55 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.55 fst(ok(X)) -> ok(fst(X)) 64.70/17.55 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.55 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.55 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.55 U43(ok(X)) -> ok(U43(X)) 64.70/17.55 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.55 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.55 U53(ok(X)) -> ok(U53(X)) 64.70/17.55 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.55 U62(ok(X)) -> ok(U62(X)) 64.70/17.55 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.55 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.55 U72(ok(X)) -> ok(U72(X)) 64.70/17.55 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.55 U82(ok(X)) -> ok(U82(X)) 64.70/17.55 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.55 U92(ok(X)) -> ok(U92(X)) 64.70/17.55 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.55 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.55 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.55 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.55 tail(ok(X)) -> ok(tail(X)) 64.70/17.55 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.55 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.55 top(mark(X)) -> top(proper(X)) 64.70/17.55 top(ok(X)) -> top(active(X)) 64.70/17.55 64.70/17.55 Types: 64.70/17.55 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tt :: tt:mark:nil:0':ok 64.70/17.55 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 nil :: tt:mark:nil:0':ok 64.70/17.55 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 0' :: tt:mark:nil:0':ok 64.70/17.55 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 top :: tt:mark:nil:0':ok -> top 64.70/17.55 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.55 hole_top2_0 :: top 64.70/17.55 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.55 64.70/17.55 64.70/17.55 Lemmas: 64.70/17.55 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.55 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.55 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.55 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.55 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.55 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.55 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.55 64.70/17.55 64.70/17.55 Generator Equations: 64.70/17.55 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.55 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.55 64.70/17.55 64.70/17.55 The following defined symbols remain to be analysed: 64.70/17.55 U133, active, U142, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.55 64.70/17.55 They will be analysed ascendingly in the following order: 64.70/17.55 U133 < active 64.70/17.55 U142 < active 64.70/17.55 U143 < active 64.70/17.55 U152 < active 64.70/17.55 U153 < active 64.70/17.55 cons < active 64.70/17.55 natsFrom < active 64.70/17.55 s < active 64.70/17.55 head < active 64.70/17.55 afterNth < active 64.70/17.55 pair < active 64.70/17.55 U202 < active 64.70/17.55 fst < active 64.70/17.55 U42 < active 64.70/17.55 U43 < active 64.70/17.55 U52 < active 64.70/17.55 U53 < active 64.70/17.55 U62 < active 64.70/17.55 isPLNat < active 64.70/17.55 U72 < active 64.70/17.55 U82 < active 64.70/17.55 U92 < active 64.70/17.55 U11 < active 64.70/17.55 and < active 64.70/17.55 isNaturalKind < active 64.70/17.55 isLNatKind < active 64.70/17.55 U21 < active 64.70/17.55 U31 < active 64.70/17.55 U41 < active 64.70/17.55 U51 < active 64.70/17.55 U61 < active 64.70/17.55 isPLNatKind < active 64.70/17.55 U71 < active 64.70/17.55 U81 < active 64.70/17.55 U91 < active 64.70/17.55 U101 < active 64.70/17.55 U111 < active 64.70/17.55 U121 < active 64.70/17.55 U131 < active 64.70/17.55 U141 < active 64.70/17.55 U151 < active 64.70/17.55 U161 < active 64.70/17.55 U171 < active 64.70/17.55 U181 < active 64.70/17.55 U191 < active 64.70/17.55 U201 < active 64.70/17.55 U211 < active 64.70/17.55 U221 < active 64.70/17.55 tail < active 64.70/17.55 take < active 64.70/17.55 sel < active 64.70/17.55 active < top 64.70/17.55 U133 < proper 64.70/17.55 U142 < proper 64.70/17.55 U143 < proper 64.70/17.55 U152 < proper 64.70/17.55 U153 < proper 64.70/17.55 cons < proper 64.70/17.55 natsFrom < proper 64.70/17.55 s < proper 64.70/17.55 head < proper 64.70/17.55 afterNth < proper 64.70/17.55 pair < proper 64.70/17.55 U202 < proper 64.70/17.55 fst < proper 64.70/17.55 U42 < proper 64.70/17.55 U43 < proper 64.70/17.55 U52 < proper 64.70/17.55 U53 < proper 64.70/17.55 U62 < proper 64.70/17.55 isPLNat < proper 64.70/17.55 U72 < proper 64.70/17.55 U82 < proper 64.70/17.55 U92 < proper 64.70/17.55 U11 < proper 64.70/17.55 and < proper 64.70/17.55 isNaturalKind < proper 64.70/17.55 isLNatKind < proper 64.70/17.55 U21 < proper 64.70/17.55 U31 < proper 64.70/17.55 U41 < proper 64.70/17.55 U51 < proper 64.70/17.55 U61 < proper 64.70/17.55 isPLNatKind < proper 64.70/17.55 U71 < proper 64.70/17.55 U81 < proper 64.70/17.55 U91 < proper 64.70/17.55 U101 < proper 64.70/17.55 U111 < proper 64.70/17.55 U121 < proper 64.70/17.55 U131 < proper 64.70/17.55 U141 < proper 64.70/17.55 U151 < proper 64.70/17.55 U161 < proper 64.70/17.55 U171 < proper 64.70/17.55 U181 < proper 64.70/17.55 U191 < proper 64.70/17.55 U201 < proper 64.70/17.55 U211 < proper 64.70/17.55 U221 < proper 64.70/17.55 tail < proper 64.70/17.55 take < proper 64.70/17.55 sel < proper 64.70/17.55 proper < top 64.70/17.55 64.70/17.55 ---------------------------------------- 64.70/17.55 64.70/17.55 (43) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.55 Proved the following rewrite lemma: 64.70/17.55 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.55 64.70/17.55 Induction Base: 64.70/17.55 U133(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.55 64.70/17.55 Induction Step: 64.70/17.55 U133(gen_tt:mark:nil:0':ok3_0(+(1, +(n23712_0, 1)))) ->_R^Omega(1) 64.70/17.55 mark(U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0)))) ->_IH 64.70/17.55 mark(*4_0) 64.70/17.55 64.70/17.55 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.55 ---------------------------------------- 64.70/17.55 64.70/17.55 (44) 64.70/17.55 Obligation: 64.70/17.55 TRS: 64.70/17.55 Rules: 64.70/17.55 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.55 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.55 active(U103(tt)) -> mark(tt) 64.70/17.55 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.55 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.55 active(U112(tt)) -> mark(tt) 64.70/17.55 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.55 active(U122(tt)) -> mark(tt) 64.70/17.55 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.55 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.55 active(U133(tt)) -> mark(tt) 64.70/17.55 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.55 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.55 active(U143(tt)) -> mark(tt) 64.70/17.55 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.55 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.55 active(U153(tt)) -> mark(tt) 64.70/17.55 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.55 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.55 active(U181(tt, Y)) -> mark(Y) 64.70/17.55 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.55 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.55 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.55 active(U21(tt, X)) -> mark(X) 64.70/17.55 active(U211(tt, XS)) -> mark(XS) 64.70/17.55 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.55 active(U31(tt, N)) -> mark(N) 64.70/17.55 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.55 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.55 active(U43(tt)) -> mark(tt) 64.70/17.55 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.55 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.55 active(U53(tt)) -> mark(tt) 64.70/17.55 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.55 active(U62(tt)) -> mark(tt) 64.70/17.55 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.55 active(U72(tt)) -> mark(tt) 64.70/17.55 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.55 active(U82(tt)) -> mark(tt) 64.70/17.55 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.55 active(U92(tt)) -> mark(tt) 64.70/17.55 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(and(tt, X)) -> mark(X) 64.70/17.55 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.55 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.55 active(isLNat(nil)) -> mark(tt) 64.70/17.55 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.55 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.55 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.55 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isLNatKind(nil)) -> mark(tt) 64.70/17.55 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.55 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isNatural(0')) -> mark(tt) 64.70/17.55 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.55 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.55 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isNaturalKind(0')) -> mark(tt) 64.70/17.55 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.55 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.55 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.55 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.55 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.55 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.55 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.55 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.55 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.55 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.55 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.55 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.55 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.55 active(U103(X)) -> U103(active(X)) 64.70/17.55 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.55 active(snd(X)) -> snd(active(X)) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.55 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.55 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.55 active(U112(X)) -> U112(active(X)) 64.70/17.55 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.55 active(U122(X)) -> U122(active(X)) 64.70/17.55 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.55 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.55 active(U133(X)) -> U133(active(X)) 64.70/17.55 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.55 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.55 active(U143(X)) -> U143(active(X)) 64.70/17.55 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.55 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.55 active(U153(X)) -> U153(active(X)) 64.70/17.55 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.55 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.55 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.55 active(s(X)) -> s(active(X)) 64.70/17.55 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.55 active(head(X)) -> head(active(X)) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.55 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.55 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.55 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.55 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.55 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.55 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.55 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.55 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.55 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.55 active(fst(X)) -> fst(active(X)) 64.70/17.55 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.55 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.55 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.55 active(U43(X)) -> U43(active(X)) 64.70/17.55 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.55 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.55 active(U53(X)) -> U53(active(X)) 64.70/17.55 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.55 active(U62(X)) -> U62(active(X)) 64.70/17.55 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.55 active(U72(X)) -> U72(active(X)) 64.70/17.55 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.55 active(U82(X)) -> U82(active(X)) 64.70/17.55 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.55 active(U92(X)) -> U92(active(X)) 64.70/17.55 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.55 active(tail(X)) -> tail(active(X)) 64.70/17.55 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.55 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.55 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.55 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.55 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.55 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.55 U103(mark(X)) -> mark(U103(X)) 64.70/17.55 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.55 snd(mark(X)) -> mark(snd(X)) 64.70/17.55 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.55 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.55 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.55 U112(mark(X)) -> mark(U112(X)) 64.70/17.55 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.55 U122(mark(X)) -> mark(U122(X)) 64.70/17.55 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.55 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.55 U133(mark(X)) -> mark(U133(X)) 64.70/17.55 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.55 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.55 U143(mark(X)) -> mark(U143(X)) 64.70/17.55 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.55 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.55 U153(mark(X)) -> mark(U153(X)) 64.70/17.55 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.55 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.55 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.55 s(mark(X)) -> mark(s(X)) 64.70/17.55 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.55 head(mark(X)) -> mark(head(X)) 64.70/17.55 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.55 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.55 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.55 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.55 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.55 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.55 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.55 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.55 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.55 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.55 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.55 fst(mark(X)) -> mark(fst(X)) 64.70/17.55 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.55 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.55 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.55 U43(mark(X)) -> mark(U43(X)) 64.70/17.55 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.55 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.55 U53(mark(X)) -> mark(U53(X)) 64.70/17.55 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.55 U62(mark(X)) -> mark(U62(X)) 64.70/17.55 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.55 U72(mark(X)) -> mark(U72(X)) 64.70/17.55 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.55 U82(mark(X)) -> mark(U82(X)) 64.70/17.55 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.55 U92(mark(X)) -> mark(U92(X)) 64.70/17.55 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.55 tail(mark(X)) -> mark(tail(X)) 64.70/17.55 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.55 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.55 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.55 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.55 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(tt) -> ok(tt) 64.70/17.55 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.55 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.55 proper(U103(X)) -> U103(proper(X)) 64.70/17.55 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.55 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(snd(X)) -> snd(proper(X)) 64.70/17.55 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.55 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.55 proper(U112(X)) -> U112(proper(X)) 64.70/17.55 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.55 proper(U122(X)) -> U122(proper(X)) 64.70/17.55 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.55 proper(U133(X)) -> U133(proper(X)) 64.70/17.55 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.55 proper(U143(X)) -> U143(proper(X)) 64.70/17.55 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.55 proper(U153(X)) -> U153(proper(X)) 64.70/17.55 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.55 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.55 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.55 proper(s(X)) -> s(proper(X)) 64.70/17.55 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(head(X)) -> head(proper(X)) 64.70/17.55 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.55 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.55 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.55 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.55 proper(nil) -> ok(nil) 64.70/17.55 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.55 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.55 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.55 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.55 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(fst(X)) -> fst(proper(X)) 64.70/17.55 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.55 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.55 proper(U43(X)) -> U43(proper(X)) 64.70/17.55 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.55 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.55 proper(U53(X)) -> U53(proper(X)) 64.70/17.55 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.55 proper(U62(X)) -> U62(proper(X)) 64.70/17.55 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.55 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.55 proper(U72(X)) -> U72(proper(X)) 64.70/17.55 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.55 proper(U82(X)) -> U82(proper(X)) 64.70/17.55 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.55 proper(U92(X)) -> U92(proper(X)) 64.70/17.55 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.55 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.55 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.55 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.55 proper(tail(X)) -> tail(proper(X)) 64.70/17.55 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.55 proper(0') -> ok(0') 64.70/17.55 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.55 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.55 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.55 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.55 U103(ok(X)) -> ok(U103(X)) 64.70/17.55 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.55 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.55 snd(ok(X)) -> ok(snd(X)) 64.70/17.55 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.55 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.55 U112(ok(X)) -> ok(U112(X)) 64.70/17.55 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.55 U122(ok(X)) -> ok(U122(X)) 64.70/17.55 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.55 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.55 U133(ok(X)) -> ok(U133(X)) 64.70/17.55 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.55 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.55 U143(ok(X)) -> ok(U143(X)) 64.70/17.55 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.55 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.55 U153(ok(X)) -> ok(U153(X)) 64.70/17.55 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.55 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.55 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.55 s(ok(X)) -> ok(s(X)) 64.70/17.55 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.55 head(ok(X)) -> ok(head(X)) 64.70/17.55 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.55 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.55 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.55 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.55 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.55 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.55 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.55 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.55 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.55 fst(ok(X)) -> ok(fst(X)) 64.70/17.55 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.55 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.55 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.55 U43(ok(X)) -> ok(U43(X)) 64.70/17.55 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.55 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.55 U53(ok(X)) -> ok(U53(X)) 64.70/17.55 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.55 U62(ok(X)) -> ok(U62(X)) 64.70/17.55 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.55 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.55 U72(ok(X)) -> ok(U72(X)) 64.70/17.55 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.55 U82(ok(X)) -> ok(U82(X)) 64.70/17.55 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.55 U92(ok(X)) -> ok(U92(X)) 64.70/17.55 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.55 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.55 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.55 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.55 tail(ok(X)) -> ok(tail(X)) 64.70/17.55 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.55 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.55 top(mark(X)) -> top(proper(X)) 64.70/17.55 top(ok(X)) -> top(active(X)) 64.70/17.55 64.70/17.55 Types: 64.70/17.55 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tt :: tt:mark:nil:0':ok 64.70/17.55 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 nil :: tt:mark:nil:0':ok 64.70/17.55 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 0' :: tt:mark:nil:0':ok 64.70/17.55 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.55 top :: tt:mark:nil:0':ok -> top 64.70/17.55 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.55 hole_top2_0 :: top 64.70/17.55 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.55 64.70/17.55 64.70/17.55 Lemmas: 64.70/17.55 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.55 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.55 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.55 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.55 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.55 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.55 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.55 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.55 64.70/17.55 64.70/17.55 Generator Equations: 64.70/17.55 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.55 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.55 64.70/17.55 64.70/17.55 The following defined symbols remain to be analysed: 64.70/17.55 U142, active, U143, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.55 64.70/17.55 They will be analysed ascendingly in the following order: 64.70/17.55 U142 < active 64.70/17.55 U143 < active 64.70/17.55 U152 < active 64.70/17.55 U153 < active 64.70/17.55 cons < active 64.70/17.55 natsFrom < active 64.70/17.55 s < active 64.70/17.55 head < active 64.70/17.55 afterNth < active 64.70/17.55 pair < active 64.70/17.55 U202 < active 64.70/17.55 fst < active 64.70/17.55 U42 < active 64.70/17.55 U43 < active 64.70/17.55 U52 < active 64.70/17.55 U53 < active 64.70/17.55 U62 < active 64.70/17.55 isPLNat < active 64.70/17.55 U72 < active 64.70/17.55 U82 < active 64.70/17.55 U92 < active 64.70/17.55 U11 < active 64.70/17.55 and < active 64.70/17.55 isNaturalKind < active 64.70/17.55 isLNatKind < active 64.70/17.56 U21 < active 64.70/17.56 U31 < active 64.70/17.56 U41 < active 64.70/17.56 U51 < active 64.70/17.56 U61 < active 64.70/17.56 isPLNatKind < active 64.70/17.56 U71 < active 64.70/17.56 U81 < active 64.70/17.56 U91 < active 64.70/17.56 U101 < active 64.70/17.56 U111 < active 64.70/17.56 U121 < active 64.70/17.56 U131 < active 64.70/17.56 U141 < active 64.70/17.56 U151 < active 64.70/17.56 U161 < active 64.70/17.56 U171 < active 64.70/17.56 U181 < active 64.70/17.56 U191 < active 64.70/17.56 U201 < active 64.70/17.56 U211 < active 64.70/17.56 U221 < active 64.70/17.56 tail < active 64.70/17.56 take < active 64.70/17.56 sel < active 64.70/17.56 active < top 64.70/17.56 U142 < proper 64.70/17.56 U143 < proper 64.70/17.56 U152 < proper 64.70/17.56 U153 < proper 64.70/17.56 cons < proper 64.70/17.56 natsFrom < proper 64.70/17.56 s < proper 64.70/17.56 head < proper 64.70/17.56 afterNth < proper 64.70/17.56 pair < proper 64.70/17.56 U202 < proper 64.70/17.56 fst < proper 64.70/17.56 U42 < proper 64.70/17.56 U43 < proper 64.70/17.56 U52 < proper 64.70/17.56 U53 < proper 64.70/17.56 U62 < proper 64.70/17.56 isPLNat < proper 64.70/17.56 U72 < proper 64.70/17.56 U82 < proper 64.70/17.56 U92 < proper 64.70/17.56 U11 < proper 64.70/17.56 and < proper 64.70/17.56 isNaturalKind < proper 64.70/17.56 isLNatKind < proper 64.70/17.56 U21 < proper 64.70/17.56 U31 < proper 64.70/17.56 U41 < proper 64.70/17.56 U51 < proper 64.70/17.56 U61 < proper 64.70/17.56 isPLNatKind < proper 64.70/17.56 U71 < proper 64.70/17.56 U81 < proper 64.70/17.56 U91 < proper 64.70/17.56 U101 < proper 64.70/17.56 U111 < proper 64.70/17.56 U121 < proper 64.70/17.56 U131 < proper 64.70/17.56 U141 < proper 64.70/17.56 U151 < proper 64.70/17.56 U161 < proper 64.70/17.56 U171 < proper 64.70/17.56 U181 < proper 64.70/17.56 U191 < proper 64.70/17.56 U201 < proper 64.70/17.56 U211 < proper 64.70/17.56 U221 < proper 64.70/17.56 tail < proper 64.70/17.56 take < proper 64.70/17.56 sel < proper 64.70/17.56 proper < top 64.70/17.56 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (45) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.56 Proved the following rewrite lemma: 64.70/17.56 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.56 64.70/17.56 Induction Base: 64.70/17.56 U142(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.56 64.70/17.56 Induction Step: 64.70/17.56 U142(gen_tt:mark:nil:0':ok3_0(+(1, +(n25802_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.56 mark(U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.56 mark(*4_0) 64.70/17.56 64.70/17.56 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (46) 64.70/17.56 Obligation: 64.70/17.56 TRS: 64.70/17.56 Rules: 64.70/17.56 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.56 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.56 active(U103(tt)) -> mark(tt) 64.70/17.56 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.56 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.56 active(U112(tt)) -> mark(tt) 64.70/17.56 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.56 active(U122(tt)) -> mark(tt) 64.70/17.56 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.56 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.56 active(U133(tt)) -> mark(tt) 64.70/17.56 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.56 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.56 active(U143(tt)) -> mark(tt) 64.70/17.56 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.56 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.56 active(U153(tt)) -> mark(tt) 64.70/17.56 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.56 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.56 active(U181(tt, Y)) -> mark(Y) 64.70/17.56 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.56 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.56 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.56 active(U21(tt, X)) -> mark(X) 64.70/17.56 active(U211(tt, XS)) -> mark(XS) 64.70/17.56 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.56 active(U31(tt, N)) -> mark(N) 64.70/17.56 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.56 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.56 active(U43(tt)) -> mark(tt) 64.70/17.56 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.56 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.56 active(U53(tt)) -> mark(tt) 64.70/17.56 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.56 active(U62(tt)) -> mark(tt) 64.70/17.56 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.56 active(U72(tt)) -> mark(tt) 64.70/17.56 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.56 active(U82(tt)) -> mark(tt) 64.70/17.56 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.56 active(U92(tt)) -> mark(tt) 64.70/17.56 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(and(tt, X)) -> mark(X) 64.70/17.56 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.56 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.56 active(isLNat(nil)) -> mark(tt) 64.70/17.56 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.56 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.56 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNatKind(nil)) -> mark(tt) 64.70/17.56 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isNatural(0')) -> mark(tt) 64.70/17.56 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.56 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.56 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isNaturalKind(0')) -> mark(tt) 64.70/17.56 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.56 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.56 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.56 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.56 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.56 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.56 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.56 active(U103(X)) -> U103(active(X)) 64.70/17.56 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.56 active(snd(X)) -> snd(active(X)) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.56 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.56 active(U112(X)) -> U112(active(X)) 64.70/17.56 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.56 active(U122(X)) -> U122(active(X)) 64.70/17.56 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.56 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.56 active(U133(X)) -> U133(active(X)) 64.70/17.56 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.56 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.56 active(U143(X)) -> U143(active(X)) 64.70/17.56 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.56 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.56 active(U153(X)) -> U153(active(X)) 64.70/17.56 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.56 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.56 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.56 active(s(X)) -> s(active(X)) 64.70/17.56 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.56 active(head(X)) -> head(active(X)) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.56 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.56 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.56 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.56 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.56 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.56 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.56 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.56 active(fst(X)) -> fst(active(X)) 64.70/17.56 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.56 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.56 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.56 active(U43(X)) -> U43(active(X)) 64.70/17.56 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.56 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.56 active(U53(X)) -> U53(active(X)) 64.70/17.56 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.56 active(U62(X)) -> U62(active(X)) 64.70/17.56 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.56 active(U72(X)) -> U72(active(X)) 64.70/17.56 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.56 active(U82(X)) -> U82(active(X)) 64.70/17.56 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.56 active(U92(X)) -> U92(active(X)) 64.70/17.56 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.56 active(tail(X)) -> tail(active(X)) 64.70/17.56 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.56 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.56 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.56 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.56 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.56 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.56 U103(mark(X)) -> mark(U103(X)) 64.70/17.56 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.56 snd(mark(X)) -> mark(snd(X)) 64.70/17.56 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.56 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.56 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.56 U112(mark(X)) -> mark(U112(X)) 64.70/17.56 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.56 U122(mark(X)) -> mark(U122(X)) 64.70/17.56 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.56 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.56 U133(mark(X)) -> mark(U133(X)) 64.70/17.56 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.56 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.56 U143(mark(X)) -> mark(U143(X)) 64.70/17.56 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.56 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.56 U153(mark(X)) -> mark(U153(X)) 64.70/17.56 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.56 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.56 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.56 s(mark(X)) -> mark(s(X)) 64.70/17.56 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.56 head(mark(X)) -> mark(head(X)) 64.70/17.56 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.56 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.56 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.56 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.56 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.56 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.56 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.56 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.56 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.56 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.56 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.56 fst(mark(X)) -> mark(fst(X)) 64.70/17.56 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.56 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.56 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.56 U43(mark(X)) -> mark(U43(X)) 64.70/17.56 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.56 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.56 U53(mark(X)) -> mark(U53(X)) 64.70/17.56 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.56 U62(mark(X)) -> mark(U62(X)) 64.70/17.56 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.56 U72(mark(X)) -> mark(U72(X)) 64.70/17.56 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.56 U82(mark(X)) -> mark(U82(X)) 64.70/17.56 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.56 U92(mark(X)) -> mark(U92(X)) 64.70/17.56 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.56 tail(mark(X)) -> mark(tail(X)) 64.70/17.56 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.56 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.56 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.56 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.56 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(tt) -> ok(tt) 64.70/17.56 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.56 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.56 proper(U103(X)) -> U103(proper(X)) 64.70/17.56 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.56 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(snd(X)) -> snd(proper(X)) 64.70/17.56 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.56 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.56 proper(U112(X)) -> U112(proper(X)) 64.70/17.56 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.56 proper(U122(X)) -> U122(proper(X)) 64.70/17.56 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.56 proper(U133(X)) -> U133(proper(X)) 64.70/17.56 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.56 proper(U143(X)) -> U143(proper(X)) 64.70/17.56 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.56 proper(U153(X)) -> U153(proper(X)) 64.70/17.56 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.56 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.56 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.56 proper(s(X)) -> s(proper(X)) 64.70/17.56 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(head(X)) -> head(proper(X)) 64.70/17.56 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.56 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.56 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.56 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.56 proper(nil) -> ok(nil) 64.70/17.56 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.56 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.56 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.56 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.56 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(fst(X)) -> fst(proper(X)) 64.70/17.56 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.56 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.56 proper(U43(X)) -> U43(proper(X)) 64.70/17.56 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.56 proper(U53(X)) -> U53(proper(X)) 64.70/17.56 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.56 proper(U62(X)) -> U62(proper(X)) 64.70/17.56 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.56 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.56 proper(U72(X)) -> U72(proper(X)) 64.70/17.56 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.56 proper(U82(X)) -> U82(proper(X)) 64.70/17.56 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.56 proper(U92(X)) -> U92(proper(X)) 64.70/17.56 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.56 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.56 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.56 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.56 proper(tail(X)) -> tail(proper(X)) 64.70/17.56 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.56 proper(0') -> ok(0') 64.70/17.56 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.56 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.56 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.56 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.56 U103(ok(X)) -> ok(U103(X)) 64.70/17.56 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.56 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.56 snd(ok(X)) -> ok(snd(X)) 64.70/17.56 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.56 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.56 U112(ok(X)) -> ok(U112(X)) 64.70/17.56 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.56 U122(ok(X)) -> ok(U122(X)) 64.70/17.56 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.56 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.56 U133(ok(X)) -> ok(U133(X)) 64.70/17.56 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.56 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.56 U143(ok(X)) -> ok(U143(X)) 64.70/17.56 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.56 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.56 U153(ok(X)) -> ok(U153(X)) 64.70/17.56 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.56 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.56 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.56 s(ok(X)) -> ok(s(X)) 64.70/17.56 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.56 head(ok(X)) -> ok(head(X)) 64.70/17.56 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.56 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.56 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.56 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.56 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.56 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.56 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.56 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.56 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.56 fst(ok(X)) -> ok(fst(X)) 64.70/17.56 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.56 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.56 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.56 U43(ok(X)) -> ok(U43(X)) 64.70/17.56 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.56 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.56 U53(ok(X)) -> ok(U53(X)) 64.70/17.56 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.56 U62(ok(X)) -> ok(U62(X)) 64.70/17.56 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.56 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.56 U72(ok(X)) -> ok(U72(X)) 64.70/17.56 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.56 U82(ok(X)) -> ok(U82(X)) 64.70/17.56 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.56 U92(ok(X)) -> ok(U92(X)) 64.70/17.56 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.56 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.56 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.56 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.56 tail(ok(X)) -> ok(tail(X)) 64.70/17.56 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.56 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.56 top(mark(X)) -> top(proper(X)) 64.70/17.56 top(ok(X)) -> top(active(X)) 64.70/17.56 64.70/17.56 Types: 64.70/17.56 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 tt :: tt:mark:nil:0':ok 64.70/17.56 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 nil :: tt:mark:nil:0':ok 64.70/17.56 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 0' :: tt:mark:nil:0':ok 64.70/17.56 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 top :: tt:mark:nil:0':ok -> top 64.70/17.56 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.56 hole_top2_0 :: top 64.70/17.56 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.56 64.70/17.56 64.70/17.56 Lemmas: 64.70/17.56 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.56 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.56 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.56 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.56 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.56 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.56 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.56 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.56 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.56 64.70/17.56 64.70/17.56 Generator Equations: 64.70/17.56 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.56 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.56 64.70/17.56 64.70/17.56 The following defined symbols remain to be analysed: 64.70/17.56 U143, active, U152, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.56 64.70/17.56 They will be analysed ascendingly in the following order: 64.70/17.56 U143 < active 64.70/17.56 U152 < active 64.70/17.56 U153 < active 64.70/17.56 cons < active 64.70/17.56 natsFrom < active 64.70/17.56 s < active 64.70/17.56 head < active 64.70/17.56 afterNth < active 64.70/17.56 pair < active 64.70/17.56 U202 < active 64.70/17.56 fst < active 64.70/17.56 U42 < active 64.70/17.56 U43 < active 64.70/17.56 U52 < active 64.70/17.56 U53 < active 64.70/17.56 U62 < active 64.70/17.56 isPLNat < active 64.70/17.56 U72 < active 64.70/17.56 U82 < active 64.70/17.56 U92 < active 64.70/17.56 U11 < active 64.70/17.56 and < active 64.70/17.56 isNaturalKind < active 64.70/17.56 isLNatKind < active 64.70/17.56 U21 < active 64.70/17.56 U31 < active 64.70/17.56 U41 < active 64.70/17.56 U51 < active 64.70/17.56 U61 < active 64.70/17.56 isPLNatKind < active 64.70/17.56 U71 < active 64.70/17.56 U81 < active 64.70/17.56 U91 < active 64.70/17.56 U101 < active 64.70/17.56 U111 < active 64.70/17.56 U121 < active 64.70/17.56 U131 < active 64.70/17.56 U141 < active 64.70/17.56 U151 < active 64.70/17.56 U161 < active 64.70/17.56 U171 < active 64.70/17.56 U181 < active 64.70/17.56 U191 < active 64.70/17.56 U201 < active 64.70/17.56 U211 < active 64.70/17.56 U221 < active 64.70/17.56 tail < active 64.70/17.56 take < active 64.70/17.56 sel < active 64.70/17.56 active < top 64.70/17.56 U143 < proper 64.70/17.56 U152 < proper 64.70/17.56 U153 < proper 64.70/17.56 cons < proper 64.70/17.56 natsFrom < proper 64.70/17.56 s < proper 64.70/17.56 head < proper 64.70/17.56 afterNth < proper 64.70/17.56 pair < proper 64.70/17.56 U202 < proper 64.70/17.56 fst < proper 64.70/17.56 U42 < proper 64.70/17.56 U43 < proper 64.70/17.56 U52 < proper 64.70/17.56 U53 < proper 64.70/17.56 U62 < proper 64.70/17.56 isPLNat < proper 64.70/17.56 U72 < proper 64.70/17.56 U82 < proper 64.70/17.56 U92 < proper 64.70/17.56 U11 < proper 64.70/17.56 and < proper 64.70/17.56 isNaturalKind < proper 64.70/17.56 isLNatKind < proper 64.70/17.56 U21 < proper 64.70/17.56 U31 < proper 64.70/17.56 U41 < proper 64.70/17.56 U51 < proper 64.70/17.56 U61 < proper 64.70/17.56 isPLNatKind < proper 64.70/17.56 U71 < proper 64.70/17.56 U81 < proper 64.70/17.56 U91 < proper 64.70/17.56 U101 < proper 64.70/17.56 U111 < proper 64.70/17.56 U121 < proper 64.70/17.56 U131 < proper 64.70/17.56 U141 < proper 64.70/17.56 U151 < proper 64.70/17.56 U161 < proper 64.70/17.56 U171 < proper 64.70/17.56 U181 < proper 64.70/17.56 U191 < proper 64.70/17.56 U201 < proper 64.70/17.56 U211 < proper 64.70/17.56 U221 < proper 64.70/17.56 tail < proper 64.70/17.56 take < proper 64.70/17.56 sel < proper 64.70/17.56 proper < top 64.70/17.56 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (47) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.56 Proved the following rewrite lemma: 64.70/17.56 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.56 64.70/17.56 Induction Base: 64.70/17.56 U143(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.56 64.70/17.56 Induction Step: 64.70/17.56 U143(gen_tt:mark:nil:0':ok3_0(+(1, +(n32717_0, 1)))) ->_R^Omega(1) 64.70/17.56 mark(U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0)))) ->_IH 64.70/17.56 mark(*4_0) 64.70/17.56 64.70/17.56 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (48) 64.70/17.56 Obligation: 64.70/17.56 TRS: 64.70/17.56 Rules: 64.70/17.56 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.56 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.56 active(U103(tt)) -> mark(tt) 64.70/17.56 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.56 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.56 active(U112(tt)) -> mark(tt) 64.70/17.56 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.56 active(U122(tt)) -> mark(tt) 64.70/17.56 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.56 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.56 active(U133(tt)) -> mark(tt) 64.70/17.56 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.56 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.56 active(U143(tt)) -> mark(tt) 64.70/17.56 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.56 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.56 active(U153(tt)) -> mark(tt) 64.70/17.56 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.56 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.56 active(U181(tt, Y)) -> mark(Y) 64.70/17.56 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.56 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.56 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.56 active(U21(tt, X)) -> mark(X) 64.70/17.56 active(U211(tt, XS)) -> mark(XS) 64.70/17.56 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.56 active(U31(tt, N)) -> mark(N) 64.70/17.56 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.56 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.56 active(U43(tt)) -> mark(tt) 64.70/17.56 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.56 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.56 active(U53(tt)) -> mark(tt) 64.70/17.56 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.56 active(U62(tt)) -> mark(tt) 64.70/17.56 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.56 active(U72(tt)) -> mark(tt) 64.70/17.56 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.56 active(U82(tt)) -> mark(tt) 64.70/17.56 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.56 active(U92(tt)) -> mark(tt) 64.70/17.56 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(and(tt, X)) -> mark(X) 64.70/17.56 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.56 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.56 active(isLNat(nil)) -> mark(tt) 64.70/17.56 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.56 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.56 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNatKind(nil)) -> mark(tt) 64.70/17.56 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isNatural(0')) -> mark(tt) 64.70/17.56 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.56 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.56 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isNaturalKind(0')) -> mark(tt) 64.70/17.56 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.56 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.56 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.56 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.56 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.56 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.56 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.56 active(U103(X)) -> U103(active(X)) 64.70/17.56 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.56 active(snd(X)) -> snd(active(X)) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.56 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.56 active(U112(X)) -> U112(active(X)) 64.70/17.56 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.56 active(U122(X)) -> U122(active(X)) 64.70/17.56 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.56 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.56 active(U133(X)) -> U133(active(X)) 64.70/17.56 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.56 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.56 active(U143(X)) -> U143(active(X)) 64.70/17.56 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.56 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.56 active(U153(X)) -> U153(active(X)) 64.70/17.56 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.56 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.56 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.56 active(s(X)) -> s(active(X)) 64.70/17.56 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.56 active(head(X)) -> head(active(X)) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.56 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.56 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.56 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.56 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.56 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.56 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.56 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.56 active(fst(X)) -> fst(active(X)) 64.70/17.56 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.56 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.56 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.56 active(U43(X)) -> U43(active(X)) 64.70/17.56 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.56 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.56 active(U53(X)) -> U53(active(X)) 64.70/17.56 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.56 active(U62(X)) -> U62(active(X)) 64.70/17.56 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.56 active(U72(X)) -> U72(active(X)) 64.70/17.56 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.56 active(U82(X)) -> U82(active(X)) 64.70/17.56 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.56 active(U92(X)) -> U92(active(X)) 64.70/17.56 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.56 active(tail(X)) -> tail(active(X)) 64.70/17.56 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.56 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.56 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.56 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.56 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.56 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.56 U103(mark(X)) -> mark(U103(X)) 64.70/17.56 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.56 snd(mark(X)) -> mark(snd(X)) 64.70/17.56 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.56 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.56 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.56 U112(mark(X)) -> mark(U112(X)) 64.70/17.56 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.56 U122(mark(X)) -> mark(U122(X)) 64.70/17.56 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.56 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.56 U133(mark(X)) -> mark(U133(X)) 64.70/17.56 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.56 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.56 U143(mark(X)) -> mark(U143(X)) 64.70/17.56 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.56 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.56 U153(mark(X)) -> mark(U153(X)) 64.70/17.56 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.56 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.56 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.56 s(mark(X)) -> mark(s(X)) 64.70/17.56 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.56 head(mark(X)) -> mark(head(X)) 64.70/17.56 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.56 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.56 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.56 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.56 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.56 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.56 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.56 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.56 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.56 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.56 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.56 fst(mark(X)) -> mark(fst(X)) 64.70/17.56 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.56 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.56 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.56 U43(mark(X)) -> mark(U43(X)) 64.70/17.56 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.56 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.56 U53(mark(X)) -> mark(U53(X)) 64.70/17.56 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.56 U62(mark(X)) -> mark(U62(X)) 64.70/17.56 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.56 U72(mark(X)) -> mark(U72(X)) 64.70/17.56 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.56 U82(mark(X)) -> mark(U82(X)) 64.70/17.56 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.56 U92(mark(X)) -> mark(U92(X)) 64.70/17.56 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.56 tail(mark(X)) -> mark(tail(X)) 64.70/17.56 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.56 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.56 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.56 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.56 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(tt) -> ok(tt) 64.70/17.56 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.56 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.56 proper(U103(X)) -> U103(proper(X)) 64.70/17.56 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.56 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(snd(X)) -> snd(proper(X)) 64.70/17.56 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.56 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.56 proper(U112(X)) -> U112(proper(X)) 64.70/17.56 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.56 proper(U122(X)) -> U122(proper(X)) 64.70/17.56 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.56 proper(U133(X)) -> U133(proper(X)) 64.70/17.56 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.56 proper(U143(X)) -> U143(proper(X)) 64.70/17.56 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.56 proper(U153(X)) -> U153(proper(X)) 64.70/17.56 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.56 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.56 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.56 proper(s(X)) -> s(proper(X)) 64.70/17.56 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(head(X)) -> head(proper(X)) 64.70/17.56 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.56 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.56 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.56 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.56 proper(nil) -> ok(nil) 64.70/17.56 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.56 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.56 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.56 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.56 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(fst(X)) -> fst(proper(X)) 64.70/17.56 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.56 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.56 proper(U43(X)) -> U43(proper(X)) 64.70/17.56 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.56 proper(U53(X)) -> U53(proper(X)) 64.70/17.56 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.56 proper(U62(X)) -> U62(proper(X)) 64.70/17.56 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.56 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.56 proper(U72(X)) -> U72(proper(X)) 64.70/17.56 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.56 proper(U82(X)) -> U82(proper(X)) 64.70/17.56 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.56 proper(U92(X)) -> U92(proper(X)) 64.70/17.56 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.56 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.56 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.56 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.56 proper(tail(X)) -> tail(proper(X)) 64.70/17.56 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.56 proper(0') -> ok(0') 64.70/17.56 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.56 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.56 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.56 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.56 U103(ok(X)) -> ok(U103(X)) 64.70/17.56 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.56 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.56 snd(ok(X)) -> ok(snd(X)) 64.70/17.56 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.56 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.56 U112(ok(X)) -> ok(U112(X)) 64.70/17.56 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.56 U122(ok(X)) -> ok(U122(X)) 64.70/17.56 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.56 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.56 U133(ok(X)) -> ok(U133(X)) 64.70/17.56 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.56 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.56 U143(ok(X)) -> ok(U143(X)) 64.70/17.56 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.56 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.56 U153(ok(X)) -> ok(U153(X)) 64.70/17.56 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.56 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.56 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.56 s(ok(X)) -> ok(s(X)) 64.70/17.56 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.56 head(ok(X)) -> ok(head(X)) 64.70/17.56 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.56 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.56 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.56 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.56 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.56 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.56 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.56 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.56 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.56 fst(ok(X)) -> ok(fst(X)) 64.70/17.56 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.56 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.56 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.56 U43(ok(X)) -> ok(U43(X)) 64.70/17.56 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.56 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.56 U53(ok(X)) -> ok(U53(X)) 64.70/17.56 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.56 U62(ok(X)) -> ok(U62(X)) 64.70/17.56 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.56 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.56 U72(ok(X)) -> ok(U72(X)) 64.70/17.56 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.56 U82(ok(X)) -> ok(U82(X)) 64.70/17.56 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.56 U92(ok(X)) -> ok(U92(X)) 64.70/17.56 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.56 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.56 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.56 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.56 tail(ok(X)) -> ok(tail(X)) 64.70/17.56 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.56 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.56 top(mark(X)) -> top(proper(X)) 64.70/17.56 top(ok(X)) -> top(active(X)) 64.70/17.56 64.70/17.56 Types: 64.70/17.56 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 tt :: tt:mark:nil:0':ok 64.70/17.56 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 nil :: tt:mark:nil:0':ok 64.70/17.56 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 0' :: tt:mark:nil:0':ok 64.70/17.56 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 top :: tt:mark:nil:0':ok -> top 64.70/17.56 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.56 hole_top2_0 :: top 64.70/17.56 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.56 64.70/17.56 64.70/17.56 Lemmas: 64.70/17.56 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.56 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.56 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.56 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.56 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.56 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.56 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.56 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.56 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.56 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.56 64.70/17.56 64.70/17.56 Generator Equations: 64.70/17.56 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.56 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.56 64.70/17.56 64.70/17.56 The following defined symbols remain to be analysed: 64.70/17.56 U152, active, U153, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.56 64.70/17.56 They will be analysed ascendingly in the following order: 64.70/17.56 U152 < active 64.70/17.56 U153 < active 64.70/17.56 cons < active 64.70/17.56 natsFrom < active 64.70/17.56 s < active 64.70/17.56 head < active 64.70/17.56 afterNth < active 64.70/17.56 pair < active 64.70/17.56 U202 < active 64.70/17.56 fst < active 64.70/17.56 U42 < active 64.70/17.56 U43 < active 64.70/17.56 U52 < active 64.70/17.56 U53 < active 64.70/17.56 U62 < active 64.70/17.56 isPLNat < active 64.70/17.56 U72 < active 64.70/17.56 U82 < active 64.70/17.56 U92 < active 64.70/17.56 U11 < active 64.70/17.56 and < active 64.70/17.56 isNaturalKind < active 64.70/17.56 isLNatKind < active 64.70/17.56 U21 < active 64.70/17.56 U31 < active 64.70/17.56 U41 < active 64.70/17.56 U51 < active 64.70/17.56 U61 < active 64.70/17.56 isPLNatKind < active 64.70/17.56 U71 < active 64.70/17.56 U81 < active 64.70/17.56 U91 < active 64.70/17.56 U101 < active 64.70/17.56 U111 < active 64.70/17.56 U121 < active 64.70/17.56 U131 < active 64.70/17.56 U141 < active 64.70/17.56 U151 < active 64.70/17.56 U161 < active 64.70/17.56 U171 < active 64.70/17.56 U181 < active 64.70/17.56 U191 < active 64.70/17.56 U201 < active 64.70/17.56 U211 < active 64.70/17.56 U221 < active 64.70/17.56 tail < active 64.70/17.56 take < active 64.70/17.56 sel < active 64.70/17.56 active < top 64.70/17.56 U152 < proper 64.70/17.56 U153 < proper 64.70/17.56 cons < proper 64.70/17.56 natsFrom < proper 64.70/17.56 s < proper 64.70/17.56 head < proper 64.70/17.56 afterNth < proper 64.70/17.56 pair < proper 64.70/17.56 U202 < proper 64.70/17.56 fst < proper 64.70/17.56 U42 < proper 64.70/17.56 U43 < proper 64.70/17.56 U52 < proper 64.70/17.56 U53 < proper 64.70/17.56 U62 < proper 64.70/17.56 isPLNat < proper 64.70/17.56 U72 < proper 64.70/17.56 U82 < proper 64.70/17.56 U92 < proper 64.70/17.56 U11 < proper 64.70/17.56 and < proper 64.70/17.56 isNaturalKind < proper 64.70/17.56 isLNatKind < proper 64.70/17.56 U21 < proper 64.70/17.56 U31 < proper 64.70/17.56 U41 < proper 64.70/17.56 U51 < proper 64.70/17.56 U61 < proper 64.70/17.56 isPLNatKind < proper 64.70/17.56 U71 < proper 64.70/17.56 U81 < proper 64.70/17.56 U91 < proper 64.70/17.56 U101 < proper 64.70/17.56 U111 < proper 64.70/17.56 U121 < proper 64.70/17.56 U131 < proper 64.70/17.56 U141 < proper 64.70/17.56 U151 < proper 64.70/17.56 U161 < proper 64.70/17.56 U171 < proper 64.70/17.56 U181 < proper 64.70/17.56 U191 < proper 64.70/17.56 U201 < proper 64.70/17.56 U211 < proper 64.70/17.56 U221 < proper 64.70/17.56 tail < proper 64.70/17.56 take < proper 64.70/17.56 sel < proper 64.70/17.56 proper < top 64.70/17.56 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (49) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.56 Proved the following rewrite lemma: 64.70/17.56 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.56 64.70/17.56 Induction Base: 64.70/17.56 U152(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.56 64.70/17.56 Induction Step: 64.70/17.56 U152(gen_tt:mark:nil:0':ok3_0(+(1, +(n35058_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.56 mark(U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.56 mark(*4_0) 64.70/17.56 64.70/17.56 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (50) 64.70/17.56 Obligation: 64.70/17.56 TRS: 64.70/17.56 Rules: 64.70/17.56 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.56 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.56 active(U103(tt)) -> mark(tt) 64.70/17.56 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.56 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.56 active(U112(tt)) -> mark(tt) 64.70/17.56 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.56 active(U122(tt)) -> mark(tt) 64.70/17.56 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.56 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.56 active(U133(tt)) -> mark(tt) 64.70/17.56 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.56 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.56 active(U143(tt)) -> mark(tt) 64.70/17.56 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.56 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.56 active(U153(tt)) -> mark(tt) 64.70/17.56 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.56 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.56 active(U181(tt, Y)) -> mark(Y) 64.70/17.56 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.56 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.56 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.56 active(U21(tt, X)) -> mark(X) 64.70/17.56 active(U211(tt, XS)) -> mark(XS) 64.70/17.56 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.56 active(U31(tt, N)) -> mark(N) 64.70/17.56 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.56 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.56 active(U43(tt)) -> mark(tt) 64.70/17.56 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.56 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.56 active(U53(tt)) -> mark(tt) 64.70/17.56 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.56 active(U62(tt)) -> mark(tt) 64.70/17.56 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.56 active(U72(tt)) -> mark(tt) 64.70/17.56 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.56 active(U82(tt)) -> mark(tt) 64.70/17.56 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.56 active(U92(tt)) -> mark(tt) 64.70/17.56 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(and(tt, X)) -> mark(X) 64.70/17.56 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.56 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.56 active(isLNat(nil)) -> mark(tt) 64.70/17.56 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.56 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.56 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNatKind(nil)) -> mark(tt) 64.70/17.56 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isNatural(0')) -> mark(tt) 64.70/17.56 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.56 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.56 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isNaturalKind(0')) -> mark(tt) 64.70/17.56 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.56 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.56 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.56 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.56 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.56 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.56 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.56 active(U103(X)) -> U103(active(X)) 64.70/17.56 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.56 active(snd(X)) -> snd(active(X)) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.56 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.56 active(U112(X)) -> U112(active(X)) 64.70/17.56 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.56 active(U122(X)) -> U122(active(X)) 64.70/17.56 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.56 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.56 active(U133(X)) -> U133(active(X)) 64.70/17.56 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.56 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.56 active(U143(X)) -> U143(active(X)) 64.70/17.56 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.56 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.56 active(U153(X)) -> U153(active(X)) 64.70/17.56 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.56 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.56 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.56 active(s(X)) -> s(active(X)) 64.70/17.56 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.56 active(head(X)) -> head(active(X)) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.56 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.56 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.56 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.56 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.56 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.56 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.56 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.56 active(fst(X)) -> fst(active(X)) 64.70/17.56 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.56 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.56 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.56 active(U43(X)) -> U43(active(X)) 64.70/17.56 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.56 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.56 active(U53(X)) -> U53(active(X)) 64.70/17.56 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.56 active(U62(X)) -> U62(active(X)) 64.70/17.56 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.56 active(U72(X)) -> U72(active(X)) 64.70/17.56 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.56 active(U82(X)) -> U82(active(X)) 64.70/17.56 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.56 active(U92(X)) -> U92(active(X)) 64.70/17.56 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.56 active(tail(X)) -> tail(active(X)) 64.70/17.56 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.56 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.56 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.56 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.56 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.56 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.56 U103(mark(X)) -> mark(U103(X)) 64.70/17.56 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.56 snd(mark(X)) -> mark(snd(X)) 64.70/17.56 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.56 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.56 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.56 U112(mark(X)) -> mark(U112(X)) 64.70/17.56 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.56 U122(mark(X)) -> mark(U122(X)) 64.70/17.56 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.56 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.56 U133(mark(X)) -> mark(U133(X)) 64.70/17.56 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.56 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.56 U143(mark(X)) -> mark(U143(X)) 64.70/17.56 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.56 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.56 U153(mark(X)) -> mark(U153(X)) 64.70/17.56 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.56 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.56 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.56 s(mark(X)) -> mark(s(X)) 64.70/17.56 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.56 head(mark(X)) -> mark(head(X)) 64.70/17.56 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.56 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.56 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.56 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.56 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.56 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.56 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.56 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.56 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.56 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.56 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.56 fst(mark(X)) -> mark(fst(X)) 64.70/17.56 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.56 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.56 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.56 U43(mark(X)) -> mark(U43(X)) 64.70/17.56 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.56 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.56 U53(mark(X)) -> mark(U53(X)) 64.70/17.56 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.56 U62(mark(X)) -> mark(U62(X)) 64.70/17.56 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.56 U72(mark(X)) -> mark(U72(X)) 64.70/17.56 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.56 U82(mark(X)) -> mark(U82(X)) 64.70/17.56 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.56 U92(mark(X)) -> mark(U92(X)) 64.70/17.56 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.56 tail(mark(X)) -> mark(tail(X)) 64.70/17.56 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.56 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.56 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.56 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.56 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(tt) -> ok(tt) 64.70/17.56 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.56 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.56 proper(U103(X)) -> U103(proper(X)) 64.70/17.56 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.56 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(snd(X)) -> snd(proper(X)) 64.70/17.56 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.56 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.56 proper(U112(X)) -> U112(proper(X)) 64.70/17.56 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.56 proper(U122(X)) -> U122(proper(X)) 64.70/17.56 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.56 proper(U133(X)) -> U133(proper(X)) 64.70/17.56 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.56 proper(U143(X)) -> U143(proper(X)) 64.70/17.56 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.56 proper(U153(X)) -> U153(proper(X)) 64.70/17.56 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.56 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.56 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.56 proper(s(X)) -> s(proper(X)) 64.70/17.56 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(head(X)) -> head(proper(X)) 64.70/17.56 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.56 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.56 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.56 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.56 proper(nil) -> ok(nil) 64.70/17.56 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.56 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.56 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.56 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.56 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(fst(X)) -> fst(proper(X)) 64.70/17.56 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.56 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.56 proper(U43(X)) -> U43(proper(X)) 64.70/17.56 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.56 proper(U53(X)) -> U53(proper(X)) 64.70/17.56 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.56 proper(U62(X)) -> U62(proper(X)) 64.70/17.56 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.56 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.56 proper(U72(X)) -> U72(proper(X)) 64.70/17.56 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.56 proper(U82(X)) -> U82(proper(X)) 64.70/17.56 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.56 proper(U92(X)) -> U92(proper(X)) 64.70/17.56 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.56 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.56 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.56 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.56 proper(tail(X)) -> tail(proper(X)) 64.70/17.56 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.56 proper(0') -> ok(0') 64.70/17.56 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.56 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.56 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.56 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.56 U103(ok(X)) -> ok(U103(X)) 64.70/17.56 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.56 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.56 snd(ok(X)) -> ok(snd(X)) 64.70/17.56 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.56 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.56 U112(ok(X)) -> ok(U112(X)) 64.70/17.56 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.56 U122(ok(X)) -> ok(U122(X)) 64.70/17.56 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.56 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.56 U133(ok(X)) -> ok(U133(X)) 64.70/17.56 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.56 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.56 U143(ok(X)) -> ok(U143(X)) 64.70/17.56 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.56 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.56 U153(ok(X)) -> ok(U153(X)) 64.70/17.56 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.56 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.56 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.56 s(ok(X)) -> ok(s(X)) 64.70/17.56 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.56 head(ok(X)) -> ok(head(X)) 64.70/17.56 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.56 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.56 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.56 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.56 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.56 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.56 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.56 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.56 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.56 fst(ok(X)) -> ok(fst(X)) 64.70/17.56 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.56 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.56 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.56 U43(ok(X)) -> ok(U43(X)) 64.70/17.56 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.56 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.56 U53(ok(X)) -> ok(U53(X)) 64.70/17.56 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.56 U62(ok(X)) -> ok(U62(X)) 64.70/17.56 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.56 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.56 U72(ok(X)) -> ok(U72(X)) 64.70/17.56 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.56 U82(ok(X)) -> ok(U82(X)) 64.70/17.56 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.56 U92(ok(X)) -> ok(U92(X)) 64.70/17.56 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.56 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.56 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.56 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.56 tail(ok(X)) -> ok(tail(X)) 64.70/17.56 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.56 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.56 top(mark(X)) -> top(proper(X)) 64.70/17.56 top(ok(X)) -> top(active(X)) 64.70/17.56 64.70/17.56 Types: 64.70/17.56 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 tt :: tt:mark:nil:0':ok 64.70/17.56 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 nil :: tt:mark:nil:0':ok 64.70/17.56 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 0' :: tt:mark:nil:0':ok 64.70/17.56 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.56 top :: tt:mark:nil:0':ok -> top 64.70/17.56 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.56 hole_top2_0 :: top 64.70/17.56 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.56 64.70/17.56 64.70/17.56 Lemmas: 64.70/17.56 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.56 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.56 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.56 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.56 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.56 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.56 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.56 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.56 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.56 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.56 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.56 64.70/17.56 64.70/17.56 Generator Equations: 64.70/17.56 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.56 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.56 64.70/17.56 64.70/17.56 The following defined symbols remain to be analysed: 64.70/17.56 U153, active, cons, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.56 64.70/17.56 They will be analysed ascendingly in the following order: 64.70/17.56 U153 < active 64.70/17.56 cons < active 64.70/17.56 natsFrom < active 64.70/17.56 s < active 64.70/17.56 head < active 64.70/17.56 afterNth < active 64.70/17.56 pair < active 64.70/17.56 U202 < active 64.70/17.56 fst < active 64.70/17.56 U42 < active 64.70/17.56 U43 < active 64.70/17.56 U52 < active 64.70/17.56 U53 < active 64.70/17.56 U62 < active 64.70/17.56 isPLNat < active 64.70/17.56 U72 < active 64.70/17.56 U82 < active 64.70/17.56 U92 < active 64.70/17.56 U11 < active 64.70/17.56 and < active 64.70/17.56 isNaturalKind < active 64.70/17.56 isLNatKind < active 64.70/17.56 U21 < active 64.70/17.56 U31 < active 64.70/17.56 U41 < active 64.70/17.56 U51 < active 64.70/17.56 U61 < active 64.70/17.56 isPLNatKind < active 64.70/17.56 U71 < active 64.70/17.56 U81 < active 64.70/17.56 U91 < active 64.70/17.56 U101 < active 64.70/17.56 U111 < active 64.70/17.56 U121 < active 64.70/17.56 U131 < active 64.70/17.56 U141 < active 64.70/17.56 U151 < active 64.70/17.56 U161 < active 64.70/17.56 U171 < active 64.70/17.56 U181 < active 64.70/17.56 U191 < active 64.70/17.56 U201 < active 64.70/17.56 U211 < active 64.70/17.56 U221 < active 64.70/17.56 tail < active 64.70/17.56 take < active 64.70/17.56 sel < active 64.70/17.56 active < top 64.70/17.56 U153 < proper 64.70/17.56 cons < proper 64.70/17.56 natsFrom < proper 64.70/17.56 s < proper 64.70/17.56 head < proper 64.70/17.56 afterNth < proper 64.70/17.56 pair < proper 64.70/17.56 U202 < proper 64.70/17.56 fst < proper 64.70/17.56 U42 < proper 64.70/17.56 U43 < proper 64.70/17.56 U52 < proper 64.70/17.56 U53 < proper 64.70/17.56 U62 < proper 64.70/17.56 isPLNat < proper 64.70/17.56 U72 < proper 64.70/17.56 U82 < proper 64.70/17.56 U92 < proper 64.70/17.56 U11 < proper 64.70/17.56 and < proper 64.70/17.56 isNaturalKind < proper 64.70/17.56 isLNatKind < proper 64.70/17.56 U21 < proper 64.70/17.56 U31 < proper 64.70/17.56 U41 < proper 64.70/17.56 U51 < proper 64.70/17.56 U61 < proper 64.70/17.56 isPLNatKind < proper 64.70/17.56 U71 < proper 64.70/17.56 U81 < proper 64.70/17.56 U91 < proper 64.70/17.56 U101 < proper 64.70/17.56 U111 < proper 64.70/17.56 U121 < proper 64.70/17.56 U131 < proper 64.70/17.56 U141 < proper 64.70/17.56 U151 < proper 64.70/17.56 U161 < proper 64.70/17.56 U171 < proper 64.70/17.56 U181 < proper 64.70/17.56 U191 < proper 64.70/17.56 U201 < proper 64.70/17.56 U211 < proper 64.70/17.56 U221 < proper 64.70/17.56 tail < proper 64.70/17.56 take < proper 64.70/17.56 sel < proper 64.70/17.56 proper < top 64.70/17.56 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (51) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.56 Proved the following rewrite lemma: 64.70/17.56 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.56 64.70/17.56 Induction Base: 64.70/17.56 U153(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.56 64.70/17.56 Induction Step: 64.70/17.56 U153(gen_tt:mark:nil:0':ok3_0(+(1, +(n42487_0, 1)))) ->_R^Omega(1) 64.70/17.56 mark(U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0)))) ->_IH 64.70/17.56 mark(*4_0) 64.70/17.56 64.70/17.56 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.56 ---------------------------------------- 64.70/17.56 64.70/17.56 (52) 64.70/17.56 Obligation: 64.70/17.56 TRS: 64.70/17.56 Rules: 64.70/17.56 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.56 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.56 active(U103(tt)) -> mark(tt) 64.70/17.56 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.56 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.56 active(U112(tt)) -> mark(tt) 64.70/17.56 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.56 active(U122(tt)) -> mark(tt) 64.70/17.56 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.56 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.56 active(U133(tt)) -> mark(tt) 64.70/17.56 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.56 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.56 active(U143(tt)) -> mark(tt) 64.70/17.56 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.56 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.56 active(U153(tt)) -> mark(tt) 64.70/17.56 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.56 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.56 active(U181(tt, Y)) -> mark(Y) 64.70/17.56 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.56 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.56 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.56 active(U21(tt, X)) -> mark(X) 64.70/17.56 active(U211(tt, XS)) -> mark(XS) 64.70/17.56 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.56 active(U31(tt, N)) -> mark(N) 64.70/17.56 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.56 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.56 active(U43(tt)) -> mark(tt) 64.70/17.56 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.56 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.56 active(U53(tt)) -> mark(tt) 64.70/17.56 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.56 active(U62(tt)) -> mark(tt) 64.70/17.56 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.56 active(U72(tt)) -> mark(tt) 64.70/17.56 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.56 active(U82(tt)) -> mark(tt) 64.70/17.56 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.56 active(U92(tt)) -> mark(tt) 64.70/17.56 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(and(tt, X)) -> mark(X) 64.70/17.56 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.56 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.56 active(isLNat(nil)) -> mark(tt) 64.70/17.56 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.56 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.56 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.56 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isLNatKind(nil)) -> mark(tt) 64.70/17.56 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.56 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isNatural(0')) -> mark(tt) 64.70/17.56 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.56 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.56 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isNaturalKind(0')) -> mark(tt) 64.70/17.56 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.56 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.56 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.56 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.56 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.56 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.56 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.56 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.56 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.56 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.56 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.56 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.56 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.56 active(U103(X)) -> U103(active(X)) 64.70/17.56 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.56 active(snd(X)) -> snd(active(X)) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.56 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.56 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.56 active(U112(X)) -> U112(active(X)) 64.70/17.56 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.56 active(U122(X)) -> U122(active(X)) 64.70/17.56 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.56 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.56 active(U133(X)) -> U133(active(X)) 64.70/17.56 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.56 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.56 active(U143(X)) -> U143(active(X)) 64.70/17.56 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.56 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.56 active(U153(X)) -> U153(active(X)) 64.70/17.56 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.56 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.56 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.56 active(s(X)) -> s(active(X)) 64.70/17.56 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.56 active(head(X)) -> head(active(X)) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.56 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.56 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.56 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.56 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.56 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.56 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.56 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.56 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.56 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.56 active(fst(X)) -> fst(active(X)) 64.70/17.56 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.56 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.56 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.56 active(U43(X)) -> U43(active(X)) 64.70/17.56 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.56 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.56 active(U53(X)) -> U53(active(X)) 64.70/17.56 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.56 active(U62(X)) -> U62(active(X)) 64.70/17.56 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.56 active(U72(X)) -> U72(active(X)) 64.70/17.56 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.56 active(U82(X)) -> U82(active(X)) 64.70/17.56 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.56 active(U92(X)) -> U92(active(X)) 64.70/17.56 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.56 active(tail(X)) -> tail(active(X)) 64.70/17.56 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.56 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.56 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.56 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.56 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.56 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.56 U103(mark(X)) -> mark(U103(X)) 64.70/17.56 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.56 snd(mark(X)) -> mark(snd(X)) 64.70/17.56 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.56 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.56 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.56 U112(mark(X)) -> mark(U112(X)) 64.70/17.56 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.56 U122(mark(X)) -> mark(U122(X)) 64.70/17.56 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.56 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.56 U133(mark(X)) -> mark(U133(X)) 64.70/17.56 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.56 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.56 U143(mark(X)) -> mark(U143(X)) 64.70/17.56 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.56 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.56 U153(mark(X)) -> mark(U153(X)) 64.70/17.56 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.56 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.56 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.56 s(mark(X)) -> mark(s(X)) 64.70/17.56 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.56 head(mark(X)) -> mark(head(X)) 64.70/17.56 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.56 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.56 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.56 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.56 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.56 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.56 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.56 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.56 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.56 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.56 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.56 fst(mark(X)) -> mark(fst(X)) 64.70/17.56 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.56 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.56 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.56 U43(mark(X)) -> mark(U43(X)) 64.70/17.56 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.56 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.56 U53(mark(X)) -> mark(U53(X)) 64.70/17.56 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.56 U62(mark(X)) -> mark(U62(X)) 64.70/17.56 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.56 U72(mark(X)) -> mark(U72(X)) 64.70/17.56 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.56 U82(mark(X)) -> mark(U82(X)) 64.70/17.56 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.56 U92(mark(X)) -> mark(U92(X)) 64.70/17.56 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.56 tail(mark(X)) -> mark(tail(X)) 64.70/17.56 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.56 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.56 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.56 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.56 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(tt) -> ok(tt) 64.70/17.56 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.56 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.56 proper(U103(X)) -> U103(proper(X)) 64.70/17.56 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.56 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(snd(X)) -> snd(proper(X)) 64.70/17.56 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.56 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.56 proper(U112(X)) -> U112(proper(X)) 64.70/17.56 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.56 proper(U122(X)) -> U122(proper(X)) 64.70/17.56 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.56 proper(U133(X)) -> U133(proper(X)) 64.70/17.56 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.56 proper(U143(X)) -> U143(proper(X)) 64.70/17.56 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.56 proper(U153(X)) -> U153(proper(X)) 64.70/17.56 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.56 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.56 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.56 proper(s(X)) -> s(proper(X)) 64.70/17.56 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(head(X)) -> head(proper(X)) 64.70/17.56 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.56 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.56 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.56 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.56 proper(nil) -> ok(nil) 64.70/17.56 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.56 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.56 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.56 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.56 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(fst(X)) -> fst(proper(X)) 64.70/17.56 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.56 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.56 proper(U43(X)) -> U43(proper(X)) 64.70/17.56 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.56 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.56 proper(U53(X)) -> U53(proper(X)) 64.70/17.56 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.56 proper(U62(X)) -> U62(proper(X)) 64.70/17.56 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.56 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.56 proper(U72(X)) -> U72(proper(X)) 64.70/17.56 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.56 proper(U82(X)) -> U82(proper(X)) 64.70/17.56 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.56 proper(U92(X)) -> U92(proper(X)) 64.70/17.56 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.56 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.56 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.56 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.56 proper(tail(X)) -> tail(proper(X)) 64.70/17.56 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.56 proper(0') -> ok(0') 64.70/17.56 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.56 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.56 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.56 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.56 U103(ok(X)) -> ok(U103(X)) 64.70/17.56 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.56 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.56 snd(ok(X)) -> ok(snd(X)) 64.70/17.56 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.56 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.56 U112(ok(X)) -> ok(U112(X)) 64.70/17.56 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.56 U122(ok(X)) -> ok(U122(X)) 64.70/17.56 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.56 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.56 U133(ok(X)) -> ok(U133(X)) 64.70/17.56 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.56 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.56 U143(ok(X)) -> ok(U143(X)) 64.70/17.56 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.56 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.56 U153(ok(X)) -> ok(U153(X)) 64.70/17.56 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.56 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.56 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.56 s(ok(X)) -> ok(s(X)) 64.70/17.56 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.56 head(ok(X)) -> ok(head(X)) 64.70/17.56 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.56 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.56 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.56 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.56 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.56 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.56 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.56 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.56 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.56 fst(ok(X)) -> ok(fst(X)) 64.70/17.56 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.56 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.56 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.56 U43(ok(X)) -> ok(U43(X)) 64.70/17.56 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.56 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.56 U53(ok(X)) -> ok(U53(X)) 64.70/17.56 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.56 U62(ok(X)) -> ok(U62(X)) 64.70/17.56 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.56 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.56 U72(ok(X)) -> ok(U72(X)) 64.70/17.56 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.56 U82(ok(X)) -> ok(U82(X)) 64.70/17.56 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.56 U92(ok(X)) -> ok(U92(X)) 64.70/17.56 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.56 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.56 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.56 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.56 tail(ok(X)) -> ok(tail(X)) 64.70/17.56 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.56 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.56 top(mark(X)) -> top(proper(X)) 64.70/17.56 top(ok(X)) -> top(active(X)) 64.70/17.56 64.70/17.56 Types: 64.70/17.56 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tt :: tt:mark:nil:0':ok 64.70/17.57 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 nil :: tt:mark:nil:0':ok 64.70/17.57 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 0' :: tt:mark:nil:0':ok 64.70/17.57 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 top :: tt:mark:nil:0':ok -> top 64.70/17.57 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.57 hole_top2_0 :: top 64.70/17.57 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.57 64.70/17.57 64.70/17.57 Lemmas: 64.70/17.57 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.57 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.57 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.57 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.57 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.57 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.57 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.57 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.57 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.57 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.57 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.57 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.57 64.70/17.57 64.70/17.57 Generator Equations: 64.70/17.57 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.57 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.57 64.70/17.57 64.70/17.57 The following defined symbols remain to be analysed: 64.70/17.57 cons, active, natsFrom, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.57 64.70/17.57 They will be analysed ascendingly in the following order: 64.70/17.57 cons < active 64.70/17.57 natsFrom < active 64.70/17.57 s < active 64.70/17.57 head < active 64.70/17.57 afterNth < active 64.70/17.57 pair < active 64.70/17.57 U202 < active 64.70/17.57 fst < active 64.70/17.57 U42 < active 64.70/17.57 U43 < active 64.70/17.57 U52 < active 64.70/17.57 U53 < active 64.70/17.57 U62 < active 64.70/17.57 isPLNat < active 64.70/17.57 U72 < active 64.70/17.57 U82 < active 64.70/17.57 U92 < active 64.70/17.57 U11 < active 64.70/17.57 and < active 64.70/17.57 isNaturalKind < active 64.70/17.57 isLNatKind < active 64.70/17.57 U21 < active 64.70/17.57 U31 < active 64.70/17.57 U41 < active 64.70/17.57 U51 < active 64.70/17.57 U61 < active 64.70/17.57 isPLNatKind < active 64.70/17.57 U71 < active 64.70/17.57 U81 < active 64.70/17.57 U91 < active 64.70/17.57 U101 < active 64.70/17.57 U111 < active 64.70/17.57 U121 < active 64.70/17.57 U131 < active 64.70/17.57 U141 < active 64.70/17.57 U151 < active 64.70/17.57 U161 < active 64.70/17.57 U171 < active 64.70/17.57 U181 < active 64.70/17.57 U191 < active 64.70/17.57 U201 < active 64.70/17.57 U211 < active 64.70/17.57 U221 < active 64.70/17.57 tail < active 64.70/17.57 take < active 64.70/17.57 sel < active 64.70/17.57 active < top 64.70/17.57 cons < proper 64.70/17.57 natsFrom < proper 64.70/17.57 s < proper 64.70/17.57 head < proper 64.70/17.57 afterNth < proper 64.70/17.57 pair < proper 64.70/17.57 U202 < proper 64.70/17.57 fst < proper 64.70/17.57 U42 < proper 64.70/17.57 U43 < proper 64.70/17.57 U52 < proper 64.70/17.57 U53 < proper 64.70/17.57 U62 < proper 64.70/17.57 isPLNat < proper 64.70/17.57 U72 < proper 64.70/17.57 U82 < proper 64.70/17.57 U92 < proper 64.70/17.57 U11 < proper 64.70/17.57 and < proper 64.70/17.57 isNaturalKind < proper 64.70/17.57 isLNatKind < proper 64.70/17.57 U21 < proper 64.70/17.57 U31 < proper 64.70/17.57 U41 < proper 64.70/17.57 U51 < proper 64.70/17.57 U61 < proper 64.70/17.57 isPLNatKind < proper 64.70/17.57 U71 < proper 64.70/17.57 U81 < proper 64.70/17.57 U91 < proper 64.70/17.57 U101 < proper 64.70/17.57 U111 < proper 64.70/17.57 U121 < proper 64.70/17.57 U131 < proper 64.70/17.57 U141 < proper 64.70/17.57 U151 < proper 64.70/17.57 U161 < proper 64.70/17.57 U171 < proper 64.70/17.57 U181 < proper 64.70/17.57 U191 < proper 64.70/17.57 U201 < proper 64.70/17.57 U211 < proper 64.70/17.57 U221 < proper 64.70/17.57 tail < proper 64.70/17.57 take < proper 64.70/17.57 sel < proper 64.70/17.57 proper < top 64.70/17.57 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (53) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.57 Proved the following rewrite lemma: 64.70/17.57 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.57 64.70/17.57 Induction Base: 64.70/17.57 cons(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.57 64.70/17.57 Induction Step: 64.70/17.57 cons(gen_tt:mark:nil:0':ok3_0(+(1, +(n45079_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.57 mark(cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.57 mark(*4_0) 64.70/17.57 64.70/17.57 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (54) 64.70/17.57 Obligation: 64.70/17.57 TRS: 64.70/17.57 Rules: 64.70/17.57 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.57 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.57 active(U103(tt)) -> mark(tt) 64.70/17.57 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.57 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.57 active(U112(tt)) -> mark(tt) 64.70/17.57 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.57 active(U122(tt)) -> mark(tt) 64.70/17.57 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.57 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.57 active(U133(tt)) -> mark(tt) 64.70/17.57 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.57 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.57 active(U143(tt)) -> mark(tt) 64.70/17.57 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.57 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.57 active(U153(tt)) -> mark(tt) 64.70/17.57 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.57 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.57 active(U181(tt, Y)) -> mark(Y) 64.70/17.57 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.57 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.57 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.57 active(U21(tt, X)) -> mark(X) 64.70/17.57 active(U211(tt, XS)) -> mark(XS) 64.70/17.57 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.57 active(U31(tt, N)) -> mark(N) 64.70/17.57 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.57 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.57 active(U43(tt)) -> mark(tt) 64.70/17.57 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.57 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.57 active(U53(tt)) -> mark(tt) 64.70/17.57 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.57 active(U62(tt)) -> mark(tt) 64.70/17.57 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.57 active(U72(tt)) -> mark(tt) 64.70/17.57 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.57 active(U82(tt)) -> mark(tt) 64.70/17.57 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.57 active(U92(tt)) -> mark(tt) 64.70/17.57 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(and(tt, X)) -> mark(X) 64.70/17.57 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.57 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.57 active(isLNat(nil)) -> mark(tt) 64.70/17.57 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.57 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.57 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNatKind(nil)) -> mark(tt) 64.70/17.57 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isNatural(0')) -> mark(tt) 64.70/17.57 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.57 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.57 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isNaturalKind(0')) -> mark(tt) 64.70/17.57 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.57 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.57 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.57 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.57 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.57 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.57 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.57 active(U103(X)) -> U103(active(X)) 64.70/17.57 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.57 active(snd(X)) -> snd(active(X)) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.57 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.57 active(U112(X)) -> U112(active(X)) 64.70/17.57 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.57 active(U122(X)) -> U122(active(X)) 64.70/17.57 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.57 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.57 active(U133(X)) -> U133(active(X)) 64.70/17.57 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.57 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.57 active(U143(X)) -> U143(active(X)) 64.70/17.57 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.57 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.57 active(U153(X)) -> U153(active(X)) 64.70/17.57 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.57 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.57 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.57 active(s(X)) -> s(active(X)) 64.70/17.57 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.57 active(head(X)) -> head(active(X)) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.57 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.57 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.57 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.57 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.57 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.57 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.57 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.57 active(fst(X)) -> fst(active(X)) 64.70/17.57 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.57 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.57 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.57 active(U43(X)) -> U43(active(X)) 64.70/17.57 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.57 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.57 active(U53(X)) -> U53(active(X)) 64.70/17.57 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.57 active(U62(X)) -> U62(active(X)) 64.70/17.57 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.57 active(U72(X)) -> U72(active(X)) 64.70/17.57 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.57 active(U82(X)) -> U82(active(X)) 64.70/17.57 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.57 active(U92(X)) -> U92(active(X)) 64.70/17.57 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.57 active(tail(X)) -> tail(active(X)) 64.70/17.57 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.57 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.57 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.57 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.57 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.57 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.57 U103(mark(X)) -> mark(U103(X)) 64.70/17.57 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.57 snd(mark(X)) -> mark(snd(X)) 64.70/17.57 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.57 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.57 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.57 U112(mark(X)) -> mark(U112(X)) 64.70/17.57 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.57 U122(mark(X)) -> mark(U122(X)) 64.70/17.57 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.57 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.57 U133(mark(X)) -> mark(U133(X)) 64.70/17.57 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.57 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.57 U143(mark(X)) -> mark(U143(X)) 64.70/17.57 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.57 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.57 U153(mark(X)) -> mark(U153(X)) 64.70/17.57 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.57 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.57 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.57 s(mark(X)) -> mark(s(X)) 64.70/17.57 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.57 head(mark(X)) -> mark(head(X)) 64.70/17.57 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.57 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.57 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.57 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.57 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.57 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.57 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.57 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.57 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.57 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.57 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.57 fst(mark(X)) -> mark(fst(X)) 64.70/17.57 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.57 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.57 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.57 U43(mark(X)) -> mark(U43(X)) 64.70/17.57 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.57 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.57 U53(mark(X)) -> mark(U53(X)) 64.70/17.57 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.57 U62(mark(X)) -> mark(U62(X)) 64.70/17.57 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.57 U72(mark(X)) -> mark(U72(X)) 64.70/17.57 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.57 U82(mark(X)) -> mark(U82(X)) 64.70/17.57 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.57 U92(mark(X)) -> mark(U92(X)) 64.70/17.57 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.57 tail(mark(X)) -> mark(tail(X)) 64.70/17.57 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.57 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.57 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.57 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.57 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(tt) -> ok(tt) 64.70/17.57 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.57 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.57 proper(U103(X)) -> U103(proper(X)) 64.70/17.57 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.57 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(snd(X)) -> snd(proper(X)) 64.70/17.57 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.57 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.57 proper(U112(X)) -> U112(proper(X)) 64.70/17.57 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.57 proper(U122(X)) -> U122(proper(X)) 64.70/17.57 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.57 proper(U133(X)) -> U133(proper(X)) 64.70/17.57 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.57 proper(U143(X)) -> U143(proper(X)) 64.70/17.57 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.57 proper(U153(X)) -> U153(proper(X)) 64.70/17.57 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.57 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.57 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.57 proper(s(X)) -> s(proper(X)) 64.70/17.57 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(head(X)) -> head(proper(X)) 64.70/17.57 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.57 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.57 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.57 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.57 proper(nil) -> ok(nil) 64.70/17.57 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.57 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.57 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.57 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.57 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(fst(X)) -> fst(proper(X)) 64.70/17.57 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.57 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.57 proper(U43(X)) -> U43(proper(X)) 64.70/17.57 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.57 proper(U53(X)) -> U53(proper(X)) 64.70/17.57 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.57 proper(U62(X)) -> U62(proper(X)) 64.70/17.57 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.57 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.57 proper(U72(X)) -> U72(proper(X)) 64.70/17.57 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.57 proper(U82(X)) -> U82(proper(X)) 64.70/17.57 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.57 proper(U92(X)) -> U92(proper(X)) 64.70/17.57 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.57 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.57 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.57 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.57 proper(tail(X)) -> tail(proper(X)) 64.70/17.57 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.57 proper(0') -> ok(0') 64.70/17.57 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.57 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.57 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.57 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.57 U103(ok(X)) -> ok(U103(X)) 64.70/17.57 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.57 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.57 snd(ok(X)) -> ok(snd(X)) 64.70/17.57 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.57 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.57 U112(ok(X)) -> ok(U112(X)) 64.70/17.57 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.57 U122(ok(X)) -> ok(U122(X)) 64.70/17.57 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.57 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.57 U133(ok(X)) -> ok(U133(X)) 64.70/17.57 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.57 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.57 U143(ok(X)) -> ok(U143(X)) 64.70/17.57 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.57 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.57 U153(ok(X)) -> ok(U153(X)) 64.70/17.57 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.57 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.57 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.57 s(ok(X)) -> ok(s(X)) 64.70/17.57 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.57 head(ok(X)) -> ok(head(X)) 64.70/17.57 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.57 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.57 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.57 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.57 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.57 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.57 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.57 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.57 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.57 fst(ok(X)) -> ok(fst(X)) 64.70/17.57 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.57 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.57 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.57 U43(ok(X)) -> ok(U43(X)) 64.70/17.57 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.57 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.57 U53(ok(X)) -> ok(U53(X)) 64.70/17.57 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.57 U62(ok(X)) -> ok(U62(X)) 64.70/17.57 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.57 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.57 U72(ok(X)) -> ok(U72(X)) 64.70/17.57 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.57 U82(ok(X)) -> ok(U82(X)) 64.70/17.57 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.57 U92(ok(X)) -> ok(U92(X)) 64.70/17.57 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.57 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.57 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.57 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.57 tail(ok(X)) -> ok(tail(X)) 64.70/17.57 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.57 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.57 top(mark(X)) -> top(proper(X)) 64.70/17.57 top(ok(X)) -> top(active(X)) 64.70/17.57 64.70/17.57 Types: 64.70/17.57 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tt :: tt:mark:nil:0':ok 64.70/17.57 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 nil :: tt:mark:nil:0':ok 64.70/17.57 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 0' :: tt:mark:nil:0':ok 64.70/17.57 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 top :: tt:mark:nil:0':ok -> top 64.70/17.57 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.57 hole_top2_0 :: top 64.70/17.57 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.57 64.70/17.57 64.70/17.57 Lemmas: 64.70/17.57 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.57 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.57 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.57 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.57 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.57 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.57 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.57 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.57 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.57 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.57 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.57 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.57 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.57 64.70/17.57 64.70/17.57 Generator Equations: 64.70/17.57 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.57 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.57 64.70/17.57 64.70/17.57 The following defined symbols remain to be analysed: 64.70/17.57 natsFrom, active, s, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.57 64.70/17.57 They will be analysed ascendingly in the following order: 64.70/17.57 natsFrom < active 64.70/17.57 s < active 64.70/17.57 head < active 64.70/17.57 afterNth < active 64.70/17.57 pair < active 64.70/17.57 U202 < active 64.70/17.57 fst < active 64.70/17.57 U42 < active 64.70/17.57 U43 < active 64.70/17.57 U52 < active 64.70/17.57 U53 < active 64.70/17.57 U62 < active 64.70/17.57 isPLNat < active 64.70/17.57 U72 < active 64.70/17.57 U82 < active 64.70/17.57 U92 < active 64.70/17.57 U11 < active 64.70/17.57 and < active 64.70/17.57 isNaturalKind < active 64.70/17.57 isLNatKind < active 64.70/17.57 U21 < active 64.70/17.57 U31 < active 64.70/17.57 U41 < active 64.70/17.57 U51 < active 64.70/17.57 U61 < active 64.70/17.57 isPLNatKind < active 64.70/17.57 U71 < active 64.70/17.57 U81 < active 64.70/17.57 U91 < active 64.70/17.57 U101 < active 64.70/17.57 U111 < active 64.70/17.57 U121 < active 64.70/17.57 U131 < active 64.70/17.57 U141 < active 64.70/17.57 U151 < active 64.70/17.57 U161 < active 64.70/17.57 U171 < active 64.70/17.57 U181 < active 64.70/17.57 U191 < active 64.70/17.57 U201 < active 64.70/17.57 U211 < active 64.70/17.57 U221 < active 64.70/17.57 tail < active 64.70/17.57 take < active 64.70/17.57 sel < active 64.70/17.57 active < top 64.70/17.57 natsFrom < proper 64.70/17.57 s < proper 64.70/17.57 head < proper 64.70/17.57 afterNth < proper 64.70/17.57 pair < proper 64.70/17.57 U202 < proper 64.70/17.57 fst < proper 64.70/17.57 U42 < proper 64.70/17.57 U43 < proper 64.70/17.57 U52 < proper 64.70/17.57 U53 < proper 64.70/17.57 U62 < proper 64.70/17.57 isPLNat < proper 64.70/17.57 U72 < proper 64.70/17.57 U82 < proper 64.70/17.57 U92 < proper 64.70/17.57 U11 < proper 64.70/17.57 and < proper 64.70/17.57 isNaturalKind < proper 64.70/17.57 isLNatKind < proper 64.70/17.57 U21 < proper 64.70/17.57 U31 < proper 64.70/17.57 U41 < proper 64.70/17.57 U51 < proper 64.70/17.57 U61 < proper 64.70/17.57 isPLNatKind < proper 64.70/17.57 U71 < proper 64.70/17.57 U81 < proper 64.70/17.57 U91 < proper 64.70/17.57 U101 < proper 64.70/17.57 U111 < proper 64.70/17.57 U121 < proper 64.70/17.57 U131 < proper 64.70/17.57 U141 < proper 64.70/17.57 U151 < proper 64.70/17.57 U161 < proper 64.70/17.57 U171 < proper 64.70/17.57 U181 < proper 64.70/17.57 U191 < proper 64.70/17.57 U201 < proper 64.70/17.57 U211 < proper 64.70/17.57 U221 < proper 64.70/17.57 tail < proper 64.70/17.57 take < proper 64.70/17.57 sel < proper 64.70/17.57 proper < top 64.70/17.57 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (55) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.57 Proved the following rewrite lemma: 64.70/17.57 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.57 64.70/17.57 Induction Base: 64.70/17.57 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.57 64.70/17.57 Induction Step: 64.70/17.57 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, +(n53022_0, 1)))) ->_R^Omega(1) 64.70/17.57 mark(natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0)))) ->_IH 64.70/17.57 mark(*4_0) 64.70/17.57 64.70/17.57 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (56) 64.70/17.57 Obligation: 64.70/17.57 TRS: 64.70/17.57 Rules: 64.70/17.57 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.57 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.57 active(U103(tt)) -> mark(tt) 64.70/17.57 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.57 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.57 active(U112(tt)) -> mark(tt) 64.70/17.57 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.57 active(U122(tt)) -> mark(tt) 64.70/17.57 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.57 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.57 active(U133(tt)) -> mark(tt) 64.70/17.57 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.57 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.57 active(U143(tt)) -> mark(tt) 64.70/17.57 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.57 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.57 active(U153(tt)) -> mark(tt) 64.70/17.57 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.57 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.57 active(U181(tt, Y)) -> mark(Y) 64.70/17.57 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.57 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.57 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.57 active(U21(tt, X)) -> mark(X) 64.70/17.57 active(U211(tt, XS)) -> mark(XS) 64.70/17.57 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.57 active(U31(tt, N)) -> mark(N) 64.70/17.57 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.57 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.57 active(U43(tt)) -> mark(tt) 64.70/17.57 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.57 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.57 active(U53(tt)) -> mark(tt) 64.70/17.57 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.57 active(U62(tt)) -> mark(tt) 64.70/17.57 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.57 active(U72(tt)) -> mark(tt) 64.70/17.57 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.57 active(U82(tt)) -> mark(tt) 64.70/17.57 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.57 active(U92(tt)) -> mark(tt) 64.70/17.57 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(and(tt, X)) -> mark(X) 64.70/17.57 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.57 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.57 active(isLNat(nil)) -> mark(tt) 64.70/17.57 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.57 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.57 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNatKind(nil)) -> mark(tt) 64.70/17.57 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isNatural(0')) -> mark(tt) 64.70/17.57 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.57 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.57 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isNaturalKind(0')) -> mark(tt) 64.70/17.57 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.57 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.57 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.57 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.57 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.57 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.57 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.57 active(U103(X)) -> U103(active(X)) 64.70/17.57 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.57 active(snd(X)) -> snd(active(X)) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.57 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.57 active(U112(X)) -> U112(active(X)) 64.70/17.57 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.57 active(U122(X)) -> U122(active(X)) 64.70/17.57 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.57 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.57 active(U133(X)) -> U133(active(X)) 64.70/17.57 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.57 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.57 active(U143(X)) -> U143(active(X)) 64.70/17.57 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.57 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.57 active(U153(X)) -> U153(active(X)) 64.70/17.57 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.57 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.57 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.57 active(s(X)) -> s(active(X)) 64.70/17.57 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.57 active(head(X)) -> head(active(X)) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.57 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.57 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.57 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.57 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.57 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.57 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.57 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.57 active(fst(X)) -> fst(active(X)) 64.70/17.57 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.57 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.57 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.57 active(U43(X)) -> U43(active(X)) 64.70/17.57 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.57 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.57 active(U53(X)) -> U53(active(X)) 64.70/17.57 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.57 active(U62(X)) -> U62(active(X)) 64.70/17.57 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.57 active(U72(X)) -> U72(active(X)) 64.70/17.57 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.57 active(U82(X)) -> U82(active(X)) 64.70/17.57 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.57 active(U92(X)) -> U92(active(X)) 64.70/17.57 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.57 active(tail(X)) -> tail(active(X)) 64.70/17.57 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.57 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.57 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.57 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.57 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.57 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.57 U103(mark(X)) -> mark(U103(X)) 64.70/17.57 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.57 snd(mark(X)) -> mark(snd(X)) 64.70/17.57 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.57 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.57 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.57 U112(mark(X)) -> mark(U112(X)) 64.70/17.57 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.57 U122(mark(X)) -> mark(U122(X)) 64.70/17.57 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.57 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.57 U133(mark(X)) -> mark(U133(X)) 64.70/17.57 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.57 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.57 U143(mark(X)) -> mark(U143(X)) 64.70/17.57 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.57 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.57 U153(mark(X)) -> mark(U153(X)) 64.70/17.57 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.57 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.57 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.57 s(mark(X)) -> mark(s(X)) 64.70/17.57 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.57 head(mark(X)) -> mark(head(X)) 64.70/17.57 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.57 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.57 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.57 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.57 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.57 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.57 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.57 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.57 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.57 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.57 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.57 fst(mark(X)) -> mark(fst(X)) 64.70/17.57 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.57 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.57 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.57 U43(mark(X)) -> mark(U43(X)) 64.70/17.57 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.57 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.57 U53(mark(X)) -> mark(U53(X)) 64.70/17.57 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.57 U62(mark(X)) -> mark(U62(X)) 64.70/17.57 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.57 U72(mark(X)) -> mark(U72(X)) 64.70/17.57 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.57 U82(mark(X)) -> mark(U82(X)) 64.70/17.57 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.57 U92(mark(X)) -> mark(U92(X)) 64.70/17.57 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.57 tail(mark(X)) -> mark(tail(X)) 64.70/17.57 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.57 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.57 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.57 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.57 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(tt) -> ok(tt) 64.70/17.57 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.57 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.57 proper(U103(X)) -> U103(proper(X)) 64.70/17.57 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.57 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(snd(X)) -> snd(proper(X)) 64.70/17.57 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.57 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.57 proper(U112(X)) -> U112(proper(X)) 64.70/17.57 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.57 proper(U122(X)) -> U122(proper(X)) 64.70/17.57 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.57 proper(U133(X)) -> U133(proper(X)) 64.70/17.57 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.57 proper(U143(X)) -> U143(proper(X)) 64.70/17.57 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.57 proper(U153(X)) -> U153(proper(X)) 64.70/17.57 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.57 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.57 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.57 proper(s(X)) -> s(proper(X)) 64.70/17.57 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(head(X)) -> head(proper(X)) 64.70/17.57 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.57 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.57 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.57 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.57 proper(nil) -> ok(nil) 64.70/17.57 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.57 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.57 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.57 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.57 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(fst(X)) -> fst(proper(X)) 64.70/17.57 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.57 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.57 proper(U43(X)) -> U43(proper(X)) 64.70/17.57 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.57 proper(U53(X)) -> U53(proper(X)) 64.70/17.57 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.57 proper(U62(X)) -> U62(proper(X)) 64.70/17.57 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.57 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.57 proper(U72(X)) -> U72(proper(X)) 64.70/17.57 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.57 proper(U82(X)) -> U82(proper(X)) 64.70/17.57 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.57 proper(U92(X)) -> U92(proper(X)) 64.70/17.57 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.57 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.57 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.57 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.57 proper(tail(X)) -> tail(proper(X)) 64.70/17.57 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.57 proper(0') -> ok(0') 64.70/17.57 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.57 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.57 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.57 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.57 U103(ok(X)) -> ok(U103(X)) 64.70/17.57 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.57 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.57 snd(ok(X)) -> ok(snd(X)) 64.70/17.57 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.57 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.57 U112(ok(X)) -> ok(U112(X)) 64.70/17.57 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.57 U122(ok(X)) -> ok(U122(X)) 64.70/17.57 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.57 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.57 U133(ok(X)) -> ok(U133(X)) 64.70/17.57 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.57 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.57 U143(ok(X)) -> ok(U143(X)) 64.70/17.57 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.57 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.57 U153(ok(X)) -> ok(U153(X)) 64.70/17.57 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.57 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.57 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.57 s(ok(X)) -> ok(s(X)) 64.70/17.57 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.57 head(ok(X)) -> ok(head(X)) 64.70/17.57 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.57 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.57 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.57 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.57 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.57 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.57 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.57 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.57 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.57 fst(ok(X)) -> ok(fst(X)) 64.70/17.57 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.57 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.57 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.57 U43(ok(X)) -> ok(U43(X)) 64.70/17.57 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.57 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.57 U53(ok(X)) -> ok(U53(X)) 64.70/17.57 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.57 U62(ok(X)) -> ok(U62(X)) 64.70/17.57 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.57 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.57 U72(ok(X)) -> ok(U72(X)) 64.70/17.57 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.57 U82(ok(X)) -> ok(U82(X)) 64.70/17.57 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.57 U92(ok(X)) -> ok(U92(X)) 64.70/17.57 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.57 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.57 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.57 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.57 tail(ok(X)) -> ok(tail(X)) 64.70/17.57 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.57 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.57 top(mark(X)) -> top(proper(X)) 64.70/17.57 top(ok(X)) -> top(active(X)) 64.70/17.57 64.70/17.57 Types: 64.70/17.57 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tt :: tt:mark:nil:0':ok 64.70/17.57 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 nil :: tt:mark:nil:0':ok 64.70/17.57 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 0' :: tt:mark:nil:0':ok 64.70/17.57 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 top :: tt:mark:nil:0':ok -> top 64.70/17.57 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.57 hole_top2_0 :: top 64.70/17.57 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.57 64.70/17.57 64.70/17.57 Lemmas: 64.70/17.57 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.57 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.57 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.57 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.57 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.57 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.57 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.57 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.57 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.57 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.57 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.57 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.57 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.57 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.57 64.70/17.57 64.70/17.57 Generator Equations: 64.70/17.57 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.57 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.57 64.70/17.57 64.70/17.57 The following defined symbols remain to be analysed: 64.70/17.57 s, active, head, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.57 64.70/17.57 They will be analysed ascendingly in the following order: 64.70/17.57 s < active 64.70/17.57 head < active 64.70/17.57 afterNth < active 64.70/17.57 pair < active 64.70/17.57 U202 < active 64.70/17.57 fst < active 64.70/17.57 U42 < active 64.70/17.57 U43 < active 64.70/17.57 U52 < active 64.70/17.57 U53 < active 64.70/17.57 U62 < active 64.70/17.57 isPLNat < active 64.70/17.57 U72 < active 64.70/17.57 U82 < active 64.70/17.57 U92 < active 64.70/17.57 U11 < active 64.70/17.57 and < active 64.70/17.57 isNaturalKind < active 64.70/17.57 isLNatKind < active 64.70/17.57 U21 < active 64.70/17.57 U31 < active 64.70/17.57 U41 < active 64.70/17.57 U51 < active 64.70/17.57 U61 < active 64.70/17.57 isPLNatKind < active 64.70/17.57 U71 < active 64.70/17.57 U81 < active 64.70/17.57 U91 < active 64.70/17.57 U101 < active 64.70/17.57 U111 < active 64.70/17.57 U121 < active 64.70/17.57 U131 < active 64.70/17.57 U141 < active 64.70/17.57 U151 < active 64.70/17.57 U161 < active 64.70/17.57 U171 < active 64.70/17.57 U181 < active 64.70/17.57 U191 < active 64.70/17.57 U201 < active 64.70/17.57 U211 < active 64.70/17.57 U221 < active 64.70/17.57 tail < active 64.70/17.57 take < active 64.70/17.57 sel < active 64.70/17.57 active < top 64.70/17.57 s < proper 64.70/17.57 head < proper 64.70/17.57 afterNth < proper 64.70/17.57 pair < proper 64.70/17.57 U202 < proper 64.70/17.57 fst < proper 64.70/17.57 U42 < proper 64.70/17.57 U43 < proper 64.70/17.57 U52 < proper 64.70/17.57 U53 < proper 64.70/17.57 U62 < proper 64.70/17.57 isPLNat < proper 64.70/17.57 U72 < proper 64.70/17.57 U82 < proper 64.70/17.57 U92 < proper 64.70/17.57 U11 < proper 64.70/17.57 and < proper 64.70/17.57 isNaturalKind < proper 64.70/17.57 isLNatKind < proper 64.70/17.57 U21 < proper 64.70/17.57 U31 < proper 64.70/17.57 U41 < proper 64.70/17.57 U51 < proper 64.70/17.57 U61 < proper 64.70/17.57 isPLNatKind < proper 64.70/17.57 U71 < proper 64.70/17.57 U81 < proper 64.70/17.57 U91 < proper 64.70/17.57 U101 < proper 64.70/17.57 U111 < proper 64.70/17.57 U121 < proper 64.70/17.57 U131 < proper 64.70/17.57 U141 < proper 64.70/17.57 U151 < proper 64.70/17.57 U161 < proper 64.70/17.57 U171 < proper 64.70/17.57 U181 < proper 64.70/17.57 U191 < proper 64.70/17.57 U201 < proper 64.70/17.57 U211 < proper 64.70/17.57 U221 < proper 64.70/17.57 tail < proper 64.70/17.57 take < proper 64.70/17.57 sel < proper 64.70/17.57 proper < top 64.70/17.57 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (57) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.57 Proved the following rewrite lemma: 64.70/17.57 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.57 64.70/17.57 Induction Base: 64.70/17.57 s(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.57 64.70/17.57 Induction Step: 64.70/17.57 s(gen_tt:mark:nil:0':ok3_0(+(1, +(n55865_0, 1)))) ->_R^Omega(1) 64.70/17.57 mark(s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0)))) ->_IH 64.70/17.57 mark(*4_0) 64.70/17.57 64.70/17.57 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (58) 64.70/17.57 Obligation: 64.70/17.57 TRS: 64.70/17.57 Rules: 64.70/17.57 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.57 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.57 active(U103(tt)) -> mark(tt) 64.70/17.57 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.57 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.57 active(U112(tt)) -> mark(tt) 64.70/17.57 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.57 active(U122(tt)) -> mark(tt) 64.70/17.57 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.57 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.57 active(U133(tt)) -> mark(tt) 64.70/17.57 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.57 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.57 active(U143(tt)) -> mark(tt) 64.70/17.57 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.57 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.57 active(U153(tt)) -> mark(tt) 64.70/17.57 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.57 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.57 active(U181(tt, Y)) -> mark(Y) 64.70/17.57 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.57 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.57 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.57 active(U21(tt, X)) -> mark(X) 64.70/17.57 active(U211(tt, XS)) -> mark(XS) 64.70/17.57 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.57 active(U31(tt, N)) -> mark(N) 64.70/17.57 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.57 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.57 active(U43(tt)) -> mark(tt) 64.70/17.57 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.57 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.57 active(U53(tt)) -> mark(tt) 64.70/17.57 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.57 active(U62(tt)) -> mark(tt) 64.70/17.57 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.57 active(U72(tt)) -> mark(tt) 64.70/17.57 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.57 active(U82(tt)) -> mark(tt) 64.70/17.57 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.57 active(U92(tt)) -> mark(tt) 64.70/17.57 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(and(tt, X)) -> mark(X) 64.70/17.57 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.57 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.57 active(isLNat(nil)) -> mark(tt) 64.70/17.57 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.57 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.57 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNatKind(nil)) -> mark(tt) 64.70/17.57 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isNatural(0')) -> mark(tt) 64.70/17.57 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.57 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.57 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isNaturalKind(0')) -> mark(tt) 64.70/17.57 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.57 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.57 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.57 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.57 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.57 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.57 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.57 active(U103(X)) -> U103(active(X)) 64.70/17.57 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.57 active(snd(X)) -> snd(active(X)) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.57 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.57 active(U112(X)) -> U112(active(X)) 64.70/17.57 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.57 active(U122(X)) -> U122(active(X)) 64.70/17.57 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.57 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.57 active(U133(X)) -> U133(active(X)) 64.70/17.57 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.57 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.57 active(U143(X)) -> U143(active(X)) 64.70/17.57 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.57 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.57 active(U153(X)) -> U153(active(X)) 64.70/17.57 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.57 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.57 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.57 active(s(X)) -> s(active(X)) 64.70/17.57 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.57 active(head(X)) -> head(active(X)) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.57 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.57 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.57 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.57 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.57 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.57 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.57 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.57 active(fst(X)) -> fst(active(X)) 64.70/17.57 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.57 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.57 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.57 active(U43(X)) -> U43(active(X)) 64.70/17.57 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.57 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.57 active(U53(X)) -> U53(active(X)) 64.70/17.57 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.57 active(U62(X)) -> U62(active(X)) 64.70/17.57 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.57 active(U72(X)) -> U72(active(X)) 64.70/17.57 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.57 active(U82(X)) -> U82(active(X)) 64.70/17.57 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.57 active(U92(X)) -> U92(active(X)) 64.70/17.57 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.57 active(tail(X)) -> tail(active(X)) 64.70/17.57 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.57 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.57 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.57 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.57 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.57 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.57 U103(mark(X)) -> mark(U103(X)) 64.70/17.57 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.57 snd(mark(X)) -> mark(snd(X)) 64.70/17.57 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.57 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.57 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.57 U112(mark(X)) -> mark(U112(X)) 64.70/17.57 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.57 U122(mark(X)) -> mark(U122(X)) 64.70/17.57 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.57 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.57 U133(mark(X)) -> mark(U133(X)) 64.70/17.57 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.57 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.57 U143(mark(X)) -> mark(U143(X)) 64.70/17.57 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.57 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.57 U153(mark(X)) -> mark(U153(X)) 64.70/17.57 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.57 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.57 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.57 s(mark(X)) -> mark(s(X)) 64.70/17.57 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.57 head(mark(X)) -> mark(head(X)) 64.70/17.57 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.57 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.57 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.57 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.57 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.57 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.57 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.57 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.57 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.57 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.57 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.57 fst(mark(X)) -> mark(fst(X)) 64.70/17.57 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.57 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.57 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.57 U43(mark(X)) -> mark(U43(X)) 64.70/17.57 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.57 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.57 U53(mark(X)) -> mark(U53(X)) 64.70/17.57 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.57 U62(mark(X)) -> mark(U62(X)) 64.70/17.57 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.57 U72(mark(X)) -> mark(U72(X)) 64.70/17.57 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.57 U82(mark(X)) -> mark(U82(X)) 64.70/17.57 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.57 U92(mark(X)) -> mark(U92(X)) 64.70/17.57 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.57 tail(mark(X)) -> mark(tail(X)) 64.70/17.57 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.57 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.57 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.57 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.57 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(tt) -> ok(tt) 64.70/17.57 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.57 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.57 proper(U103(X)) -> U103(proper(X)) 64.70/17.57 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.57 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(snd(X)) -> snd(proper(X)) 64.70/17.57 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.57 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.57 proper(U112(X)) -> U112(proper(X)) 64.70/17.57 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.57 proper(U122(X)) -> U122(proper(X)) 64.70/17.57 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.57 proper(U133(X)) -> U133(proper(X)) 64.70/17.57 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.57 proper(U143(X)) -> U143(proper(X)) 64.70/17.57 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.57 proper(U153(X)) -> U153(proper(X)) 64.70/17.57 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.57 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.57 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.57 proper(s(X)) -> s(proper(X)) 64.70/17.57 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(head(X)) -> head(proper(X)) 64.70/17.57 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.57 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.57 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.57 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.57 proper(nil) -> ok(nil) 64.70/17.57 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.57 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.57 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.57 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.57 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(fst(X)) -> fst(proper(X)) 64.70/17.57 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.57 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.57 proper(U43(X)) -> U43(proper(X)) 64.70/17.57 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.57 proper(U53(X)) -> U53(proper(X)) 64.70/17.57 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.57 proper(U62(X)) -> U62(proper(X)) 64.70/17.57 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.57 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.57 proper(U72(X)) -> U72(proper(X)) 64.70/17.57 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.57 proper(U82(X)) -> U82(proper(X)) 64.70/17.57 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.57 proper(U92(X)) -> U92(proper(X)) 64.70/17.57 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.57 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.57 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.57 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.57 proper(tail(X)) -> tail(proper(X)) 64.70/17.57 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.57 proper(0') -> ok(0') 64.70/17.57 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.57 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.57 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.57 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.57 U103(ok(X)) -> ok(U103(X)) 64.70/17.57 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.57 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.57 snd(ok(X)) -> ok(snd(X)) 64.70/17.57 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.57 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.57 U112(ok(X)) -> ok(U112(X)) 64.70/17.57 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.57 U122(ok(X)) -> ok(U122(X)) 64.70/17.57 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.57 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.57 U133(ok(X)) -> ok(U133(X)) 64.70/17.57 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.57 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.57 U143(ok(X)) -> ok(U143(X)) 64.70/17.57 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.57 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.57 U153(ok(X)) -> ok(U153(X)) 64.70/17.57 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.57 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.57 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.57 s(ok(X)) -> ok(s(X)) 64.70/17.57 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.57 head(ok(X)) -> ok(head(X)) 64.70/17.57 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.57 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.57 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.57 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.57 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.57 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.57 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.57 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.57 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.57 fst(ok(X)) -> ok(fst(X)) 64.70/17.57 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.57 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.57 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.57 U43(ok(X)) -> ok(U43(X)) 64.70/17.57 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.57 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.57 U53(ok(X)) -> ok(U53(X)) 64.70/17.57 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.57 U62(ok(X)) -> ok(U62(X)) 64.70/17.57 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.57 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.57 U72(ok(X)) -> ok(U72(X)) 64.70/17.57 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.57 U82(ok(X)) -> ok(U82(X)) 64.70/17.57 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.57 U92(ok(X)) -> ok(U92(X)) 64.70/17.57 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.57 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.57 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.57 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.57 tail(ok(X)) -> ok(tail(X)) 64.70/17.57 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.57 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.57 top(mark(X)) -> top(proper(X)) 64.70/17.57 top(ok(X)) -> top(active(X)) 64.70/17.57 64.70/17.57 Types: 64.70/17.57 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tt :: tt:mark:nil:0':ok 64.70/17.57 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 nil :: tt:mark:nil:0':ok 64.70/17.57 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 0' :: tt:mark:nil:0':ok 64.70/17.57 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.57 top :: tt:mark:nil:0':ok -> top 64.70/17.57 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.57 hole_top2_0 :: top 64.70/17.57 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.57 64.70/17.57 64.70/17.57 Lemmas: 64.70/17.57 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.57 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.57 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.57 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.57 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.57 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.57 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.57 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.57 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.57 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.57 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.57 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.57 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.57 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.57 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.57 64.70/17.57 64.70/17.57 Generator Equations: 64.70/17.57 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.57 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.57 64.70/17.57 64.70/17.57 The following defined symbols remain to be analysed: 64.70/17.57 head, active, afterNth, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.57 64.70/17.57 They will be analysed ascendingly in the following order: 64.70/17.57 head < active 64.70/17.57 afterNth < active 64.70/17.57 pair < active 64.70/17.57 U202 < active 64.70/17.57 fst < active 64.70/17.57 U42 < active 64.70/17.57 U43 < active 64.70/17.57 U52 < active 64.70/17.57 U53 < active 64.70/17.57 U62 < active 64.70/17.57 isPLNat < active 64.70/17.57 U72 < active 64.70/17.57 U82 < active 64.70/17.57 U92 < active 64.70/17.57 U11 < active 64.70/17.57 and < active 64.70/17.57 isNaturalKind < active 64.70/17.57 isLNatKind < active 64.70/17.57 U21 < active 64.70/17.57 U31 < active 64.70/17.57 U41 < active 64.70/17.57 U51 < active 64.70/17.57 U61 < active 64.70/17.57 isPLNatKind < active 64.70/17.57 U71 < active 64.70/17.57 U81 < active 64.70/17.57 U91 < active 64.70/17.57 U101 < active 64.70/17.57 U111 < active 64.70/17.57 U121 < active 64.70/17.57 U131 < active 64.70/17.57 U141 < active 64.70/17.57 U151 < active 64.70/17.57 U161 < active 64.70/17.57 U171 < active 64.70/17.57 U181 < active 64.70/17.57 U191 < active 64.70/17.57 U201 < active 64.70/17.57 U211 < active 64.70/17.57 U221 < active 64.70/17.57 tail < active 64.70/17.57 take < active 64.70/17.57 sel < active 64.70/17.57 active < top 64.70/17.57 head < proper 64.70/17.57 afterNth < proper 64.70/17.57 pair < proper 64.70/17.57 U202 < proper 64.70/17.57 fst < proper 64.70/17.57 U42 < proper 64.70/17.57 U43 < proper 64.70/17.57 U52 < proper 64.70/17.57 U53 < proper 64.70/17.57 U62 < proper 64.70/17.57 isPLNat < proper 64.70/17.57 U72 < proper 64.70/17.57 U82 < proper 64.70/17.57 U92 < proper 64.70/17.57 U11 < proper 64.70/17.57 and < proper 64.70/17.57 isNaturalKind < proper 64.70/17.57 isLNatKind < proper 64.70/17.57 U21 < proper 64.70/17.57 U31 < proper 64.70/17.57 U41 < proper 64.70/17.57 U51 < proper 64.70/17.57 U61 < proper 64.70/17.57 isPLNatKind < proper 64.70/17.57 U71 < proper 64.70/17.57 U81 < proper 64.70/17.57 U91 < proper 64.70/17.57 U101 < proper 64.70/17.57 U111 < proper 64.70/17.57 U121 < proper 64.70/17.57 U131 < proper 64.70/17.57 U141 < proper 64.70/17.57 U151 < proper 64.70/17.57 U161 < proper 64.70/17.57 U171 < proper 64.70/17.57 U181 < proper 64.70/17.57 U191 < proper 64.70/17.57 U201 < proper 64.70/17.57 U211 < proper 64.70/17.57 U221 < proper 64.70/17.57 tail < proper 64.70/17.57 take < proper 64.70/17.57 sel < proper 64.70/17.57 proper < top 64.70/17.57 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (59) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.57 Proved the following rewrite lemma: 64.70/17.57 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.57 64.70/17.57 Induction Base: 64.70/17.57 head(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.57 64.70/17.57 Induction Step: 64.70/17.57 head(gen_tt:mark:nil:0':ok3_0(+(1, +(n58809_0, 1)))) ->_R^Omega(1) 64.70/17.57 mark(head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0)))) ->_IH 64.70/17.57 mark(*4_0) 64.70/17.57 64.70/17.57 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.57 ---------------------------------------- 64.70/17.57 64.70/17.57 (60) 64.70/17.57 Obligation: 64.70/17.57 TRS: 64.70/17.57 Rules: 64.70/17.57 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.57 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.57 active(U103(tt)) -> mark(tt) 64.70/17.57 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.57 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.57 active(U112(tt)) -> mark(tt) 64.70/17.57 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.57 active(U122(tt)) -> mark(tt) 64.70/17.57 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.57 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.57 active(U133(tt)) -> mark(tt) 64.70/17.57 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.57 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.57 active(U143(tt)) -> mark(tt) 64.70/17.57 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.57 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.57 active(U153(tt)) -> mark(tt) 64.70/17.57 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.57 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.57 active(U181(tt, Y)) -> mark(Y) 64.70/17.57 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.57 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.57 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.57 active(U21(tt, X)) -> mark(X) 64.70/17.57 active(U211(tt, XS)) -> mark(XS) 64.70/17.57 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.57 active(U31(tt, N)) -> mark(N) 64.70/17.57 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.57 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.57 active(U43(tt)) -> mark(tt) 64.70/17.57 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.57 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.57 active(U53(tt)) -> mark(tt) 64.70/17.57 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.57 active(U62(tt)) -> mark(tt) 64.70/17.57 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.57 active(U72(tt)) -> mark(tt) 64.70/17.57 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.57 active(U82(tt)) -> mark(tt) 64.70/17.57 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.57 active(U92(tt)) -> mark(tt) 64.70/17.57 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(and(tt, X)) -> mark(X) 64.70/17.57 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.57 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.57 active(isLNat(nil)) -> mark(tt) 64.70/17.57 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.57 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.57 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.57 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isLNatKind(nil)) -> mark(tt) 64.70/17.57 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.57 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isNatural(0')) -> mark(tt) 64.70/17.57 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.57 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.57 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isNaturalKind(0')) -> mark(tt) 64.70/17.57 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.57 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.57 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.57 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.57 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.57 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.57 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.57 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.57 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.57 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.57 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.57 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.57 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.57 active(U103(X)) -> U103(active(X)) 64.70/17.57 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.57 active(snd(X)) -> snd(active(X)) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.57 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.57 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.57 active(U112(X)) -> U112(active(X)) 64.70/17.57 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.57 active(U122(X)) -> U122(active(X)) 64.70/17.57 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.57 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.57 active(U133(X)) -> U133(active(X)) 64.70/17.57 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.57 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.57 active(U143(X)) -> U143(active(X)) 64.70/17.57 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.57 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.57 active(U153(X)) -> U153(active(X)) 64.70/17.57 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.57 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.57 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.57 active(s(X)) -> s(active(X)) 64.70/17.57 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.57 active(head(X)) -> head(active(X)) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.57 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.57 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.57 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.57 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.57 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.57 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.57 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.57 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.57 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.57 active(fst(X)) -> fst(active(X)) 64.70/17.57 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.57 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.57 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.57 active(U43(X)) -> U43(active(X)) 64.70/17.57 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.57 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.57 active(U53(X)) -> U53(active(X)) 64.70/17.57 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.57 active(U62(X)) -> U62(active(X)) 64.70/17.57 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.57 active(U72(X)) -> U72(active(X)) 64.70/17.57 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.57 active(U82(X)) -> U82(active(X)) 64.70/17.57 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.57 active(U92(X)) -> U92(active(X)) 64.70/17.57 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.57 active(tail(X)) -> tail(active(X)) 64.70/17.57 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.57 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.57 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.57 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.57 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.57 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.57 U103(mark(X)) -> mark(U103(X)) 64.70/17.57 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.57 snd(mark(X)) -> mark(snd(X)) 64.70/17.57 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.57 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.57 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.57 U112(mark(X)) -> mark(U112(X)) 64.70/17.57 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.57 U122(mark(X)) -> mark(U122(X)) 64.70/17.57 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.57 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.57 U133(mark(X)) -> mark(U133(X)) 64.70/17.57 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.57 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.57 U143(mark(X)) -> mark(U143(X)) 64.70/17.57 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.57 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.57 U153(mark(X)) -> mark(U153(X)) 64.70/17.57 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.57 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.57 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.57 s(mark(X)) -> mark(s(X)) 64.70/17.57 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.57 head(mark(X)) -> mark(head(X)) 64.70/17.57 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.57 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.57 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.57 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.57 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.57 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.57 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.57 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.57 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.57 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.57 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.57 fst(mark(X)) -> mark(fst(X)) 64.70/17.57 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.57 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.57 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.57 U43(mark(X)) -> mark(U43(X)) 64.70/17.57 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.57 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.57 U53(mark(X)) -> mark(U53(X)) 64.70/17.57 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.57 U62(mark(X)) -> mark(U62(X)) 64.70/17.57 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.57 U72(mark(X)) -> mark(U72(X)) 64.70/17.57 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.57 U82(mark(X)) -> mark(U82(X)) 64.70/17.57 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.57 U92(mark(X)) -> mark(U92(X)) 64.70/17.57 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.57 tail(mark(X)) -> mark(tail(X)) 64.70/17.57 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.57 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.57 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.57 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.57 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(tt) -> ok(tt) 64.70/17.57 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.57 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.57 proper(U103(X)) -> U103(proper(X)) 64.70/17.57 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.57 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(snd(X)) -> snd(proper(X)) 64.70/17.57 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.57 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.57 proper(U112(X)) -> U112(proper(X)) 64.70/17.57 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.57 proper(U122(X)) -> U122(proper(X)) 64.70/17.57 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.57 proper(U133(X)) -> U133(proper(X)) 64.70/17.57 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.57 proper(U143(X)) -> U143(proper(X)) 64.70/17.57 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.57 proper(U153(X)) -> U153(proper(X)) 64.70/17.57 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.57 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.57 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.57 proper(s(X)) -> s(proper(X)) 64.70/17.57 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(head(X)) -> head(proper(X)) 64.70/17.57 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.57 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.57 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.57 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.57 proper(nil) -> ok(nil) 64.70/17.57 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.57 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.57 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.57 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.57 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(fst(X)) -> fst(proper(X)) 64.70/17.57 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.57 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.57 proper(U43(X)) -> U43(proper(X)) 64.70/17.57 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.57 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.57 proper(U53(X)) -> U53(proper(X)) 64.70/17.57 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.57 proper(U62(X)) -> U62(proper(X)) 64.70/17.57 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.57 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.57 proper(U72(X)) -> U72(proper(X)) 64.70/17.57 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.57 proper(U82(X)) -> U82(proper(X)) 64.70/17.57 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.57 proper(U92(X)) -> U92(proper(X)) 64.70/17.57 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.57 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.57 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.57 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.57 proper(tail(X)) -> tail(proper(X)) 64.70/17.58 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.58 proper(0') -> ok(0') 64.70/17.58 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.58 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.58 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.58 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.58 U103(ok(X)) -> ok(U103(X)) 64.70/17.58 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.58 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.58 snd(ok(X)) -> ok(snd(X)) 64.70/17.58 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.58 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.58 U112(ok(X)) -> ok(U112(X)) 64.70/17.58 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.58 U122(ok(X)) -> ok(U122(X)) 64.70/17.58 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.58 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.58 U133(ok(X)) -> ok(U133(X)) 64.70/17.58 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.58 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.58 U143(ok(X)) -> ok(U143(X)) 64.70/17.58 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.58 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.58 U153(ok(X)) -> ok(U153(X)) 64.70/17.58 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.58 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.58 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.58 s(ok(X)) -> ok(s(X)) 64.70/17.58 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.58 head(ok(X)) -> ok(head(X)) 64.70/17.58 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.58 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.58 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.58 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.58 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.58 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.58 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.58 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.58 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.58 fst(ok(X)) -> ok(fst(X)) 64.70/17.58 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.58 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.58 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.58 U43(ok(X)) -> ok(U43(X)) 64.70/17.58 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.58 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.58 U53(ok(X)) -> ok(U53(X)) 64.70/17.58 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.58 U62(ok(X)) -> ok(U62(X)) 64.70/17.58 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.58 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.58 U72(ok(X)) -> ok(U72(X)) 64.70/17.58 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.58 U82(ok(X)) -> ok(U82(X)) 64.70/17.58 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.58 U92(ok(X)) -> ok(U92(X)) 64.70/17.58 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.58 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.58 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.58 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.58 tail(ok(X)) -> ok(tail(X)) 64.70/17.58 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.58 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.58 top(mark(X)) -> top(proper(X)) 64.70/17.58 top(ok(X)) -> top(active(X)) 64.70/17.58 64.70/17.58 Types: 64.70/17.58 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tt :: tt:mark:nil:0':ok 64.70/17.58 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 nil :: tt:mark:nil:0':ok 64.70/17.58 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 0' :: tt:mark:nil:0':ok 64.70/17.58 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 top :: tt:mark:nil:0':ok -> top 64.70/17.58 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.58 hole_top2_0 :: top 64.70/17.58 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.58 64.70/17.58 64.70/17.58 Lemmas: 64.70/17.58 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.58 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.58 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.58 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.58 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.58 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.58 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.58 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.58 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.58 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.58 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.58 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.58 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.58 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.58 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.58 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.58 64.70/17.58 64.70/17.58 Generator Equations: 64.70/17.58 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.58 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.58 64.70/17.58 64.70/17.58 The following defined symbols remain to be analysed: 64.70/17.58 afterNth, active, pair, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.58 64.70/17.58 They will be analysed ascendingly in the following order: 64.70/17.58 afterNth < active 64.70/17.58 pair < active 64.70/17.58 U202 < active 64.70/17.58 fst < active 64.70/17.58 U42 < active 64.70/17.58 U43 < active 64.70/17.58 U52 < active 64.70/17.58 U53 < active 64.70/17.58 U62 < active 64.70/17.58 isPLNat < active 64.70/17.58 U72 < active 64.70/17.58 U82 < active 64.70/17.58 U92 < active 64.70/17.58 U11 < active 64.70/17.58 and < active 64.70/17.58 isNaturalKind < active 64.70/17.58 isLNatKind < active 64.70/17.58 U21 < active 64.70/17.58 U31 < active 64.70/17.58 U41 < active 64.70/17.58 U51 < active 64.70/17.58 U61 < active 64.70/17.58 isPLNatKind < active 64.70/17.58 U71 < active 64.70/17.58 U81 < active 64.70/17.58 U91 < active 64.70/17.58 U101 < active 64.70/17.58 U111 < active 64.70/17.58 U121 < active 64.70/17.58 U131 < active 64.70/17.58 U141 < active 64.70/17.58 U151 < active 64.70/17.58 U161 < active 64.70/17.58 U171 < active 64.70/17.58 U181 < active 64.70/17.58 U191 < active 64.70/17.58 U201 < active 64.70/17.58 U211 < active 64.70/17.58 U221 < active 64.70/17.58 tail < active 64.70/17.58 take < active 64.70/17.58 sel < active 64.70/17.58 active < top 64.70/17.58 afterNth < proper 64.70/17.58 pair < proper 64.70/17.58 U202 < proper 64.70/17.58 fst < proper 64.70/17.58 U42 < proper 64.70/17.58 U43 < proper 64.70/17.58 U52 < proper 64.70/17.58 U53 < proper 64.70/17.58 U62 < proper 64.70/17.58 isPLNat < proper 64.70/17.58 U72 < proper 64.70/17.58 U82 < proper 64.70/17.58 U92 < proper 64.70/17.58 U11 < proper 64.70/17.58 and < proper 64.70/17.58 isNaturalKind < proper 64.70/17.58 isLNatKind < proper 64.70/17.58 U21 < proper 64.70/17.58 U31 < proper 64.70/17.58 U41 < proper 64.70/17.58 U51 < proper 64.70/17.58 U61 < proper 64.70/17.58 isPLNatKind < proper 64.70/17.58 U71 < proper 64.70/17.58 U81 < proper 64.70/17.58 U91 < proper 64.70/17.58 U101 < proper 64.70/17.58 U111 < proper 64.70/17.58 U121 < proper 64.70/17.58 U131 < proper 64.70/17.58 U141 < proper 64.70/17.58 U151 < proper 64.70/17.58 U161 < proper 64.70/17.58 U171 < proper 64.70/17.58 U181 < proper 64.70/17.58 U191 < proper 64.70/17.58 U201 < proper 64.70/17.58 U211 < proper 64.70/17.58 U221 < proper 64.70/17.58 tail < proper 64.70/17.58 take < proper 64.70/17.58 sel < proper 64.70/17.58 proper < top 64.70/17.58 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (61) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.58 Proved the following rewrite lemma: 64.70/17.58 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.58 64.70/17.58 Induction Base: 64.70/17.58 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.58 64.70/17.58 Induction Step: 64.70/17.58 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, +(n61854_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.58 mark(afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.58 mark(*4_0) 64.70/17.58 64.70/17.58 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (62) 64.70/17.58 Obligation: 64.70/17.58 TRS: 64.70/17.58 Rules: 64.70/17.58 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.58 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.58 active(U103(tt)) -> mark(tt) 64.70/17.58 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.58 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.58 active(U112(tt)) -> mark(tt) 64.70/17.58 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.58 active(U122(tt)) -> mark(tt) 64.70/17.58 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.58 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.58 active(U133(tt)) -> mark(tt) 64.70/17.58 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.58 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.58 active(U143(tt)) -> mark(tt) 64.70/17.58 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.58 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.58 active(U153(tt)) -> mark(tt) 64.70/17.58 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.58 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.58 active(U181(tt, Y)) -> mark(Y) 64.70/17.58 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.58 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.58 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.58 active(U21(tt, X)) -> mark(X) 64.70/17.58 active(U211(tt, XS)) -> mark(XS) 64.70/17.58 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.58 active(U31(tt, N)) -> mark(N) 64.70/17.58 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.58 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.58 active(U43(tt)) -> mark(tt) 64.70/17.58 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.58 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.58 active(U53(tt)) -> mark(tt) 64.70/17.58 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.58 active(U62(tt)) -> mark(tt) 64.70/17.58 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.58 active(U72(tt)) -> mark(tt) 64.70/17.58 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.58 active(U82(tt)) -> mark(tt) 64.70/17.58 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.58 active(U92(tt)) -> mark(tt) 64.70/17.58 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(and(tt, X)) -> mark(X) 64.70/17.58 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.58 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.58 active(isLNat(nil)) -> mark(tt) 64.70/17.58 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.58 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.58 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNatKind(nil)) -> mark(tt) 64.70/17.58 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isNatural(0')) -> mark(tt) 64.70/17.58 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.58 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.58 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isNaturalKind(0')) -> mark(tt) 64.70/17.58 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.58 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.58 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.58 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.58 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.58 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.58 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.58 active(U103(X)) -> U103(active(X)) 64.70/17.58 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.58 active(snd(X)) -> snd(active(X)) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.58 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.58 active(U112(X)) -> U112(active(X)) 64.70/17.58 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.58 active(U122(X)) -> U122(active(X)) 64.70/17.58 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.58 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.58 active(U133(X)) -> U133(active(X)) 64.70/17.58 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.58 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.58 active(U143(X)) -> U143(active(X)) 64.70/17.58 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.58 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.58 active(U153(X)) -> U153(active(X)) 64.70/17.58 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.58 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.58 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.58 active(s(X)) -> s(active(X)) 64.70/17.58 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.58 active(head(X)) -> head(active(X)) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.58 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.58 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.58 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.58 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.58 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.58 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.58 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.58 active(fst(X)) -> fst(active(X)) 64.70/17.58 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.58 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.58 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.58 active(U43(X)) -> U43(active(X)) 64.70/17.58 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.58 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.58 active(U53(X)) -> U53(active(X)) 64.70/17.58 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.58 active(U62(X)) -> U62(active(X)) 64.70/17.58 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.58 active(U72(X)) -> U72(active(X)) 64.70/17.58 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.58 active(U82(X)) -> U82(active(X)) 64.70/17.58 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.58 active(U92(X)) -> U92(active(X)) 64.70/17.58 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.58 active(tail(X)) -> tail(active(X)) 64.70/17.58 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.58 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.58 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.58 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.58 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.58 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.58 U103(mark(X)) -> mark(U103(X)) 64.70/17.58 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.58 snd(mark(X)) -> mark(snd(X)) 64.70/17.58 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.58 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.58 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.58 U112(mark(X)) -> mark(U112(X)) 64.70/17.58 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.58 U122(mark(X)) -> mark(U122(X)) 64.70/17.58 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.58 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.58 U133(mark(X)) -> mark(U133(X)) 64.70/17.58 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.58 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.58 U143(mark(X)) -> mark(U143(X)) 64.70/17.58 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.58 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.58 U153(mark(X)) -> mark(U153(X)) 64.70/17.58 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.58 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.58 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.58 s(mark(X)) -> mark(s(X)) 64.70/17.58 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.58 head(mark(X)) -> mark(head(X)) 64.70/17.58 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.58 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.58 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.58 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.58 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.58 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.58 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.58 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.58 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.58 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.58 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.58 fst(mark(X)) -> mark(fst(X)) 64.70/17.58 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.58 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.58 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.58 U43(mark(X)) -> mark(U43(X)) 64.70/17.58 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.58 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.58 U53(mark(X)) -> mark(U53(X)) 64.70/17.58 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.58 U62(mark(X)) -> mark(U62(X)) 64.70/17.58 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.58 U72(mark(X)) -> mark(U72(X)) 64.70/17.58 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.58 U82(mark(X)) -> mark(U82(X)) 64.70/17.58 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.58 U92(mark(X)) -> mark(U92(X)) 64.70/17.58 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.58 tail(mark(X)) -> mark(tail(X)) 64.70/17.58 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.58 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.58 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.58 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.58 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(tt) -> ok(tt) 64.70/17.58 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.58 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.58 proper(U103(X)) -> U103(proper(X)) 64.70/17.58 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.58 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(snd(X)) -> snd(proper(X)) 64.70/17.58 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.58 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.58 proper(U112(X)) -> U112(proper(X)) 64.70/17.58 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.58 proper(U122(X)) -> U122(proper(X)) 64.70/17.58 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.58 proper(U133(X)) -> U133(proper(X)) 64.70/17.58 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.58 proper(U143(X)) -> U143(proper(X)) 64.70/17.58 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.58 proper(U153(X)) -> U153(proper(X)) 64.70/17.58 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.58 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.58 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.58 proper(s(X)) -> s(proper(X)) 64.70/17.58 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(head(X)) -> head(proper(X)) 64.70/17.58 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.58 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.58 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.58 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.58 proper(nil) -> ok(nil) 64.70/17.58 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.58 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.58 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.58 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.58 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(fst(X)) -> fst(proper(X)) 64.70/17.58 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.58 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.58 proper(U43(X)) -> U43(proper(X)) 64.70/17.58 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.58 proper(U53(X)) -> U53(proper(X)) 64.70/17.58 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.58 proper(U62(X)) -> U62(proper(X)) 64.70/17.58 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.58 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.58 proper(U72(X)) -> U72(proper(X)) 64.70/17.58 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.58 proper(U82(X)) -> U82(proper(X)) 64.70/17.58 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.58 proper(U92(X)) -> U92(proper(X)) 64.70/17.58 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.58 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.58 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.58 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.58 proper(tail(X)) -> tail(proper(X)) 64.70/17.58 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.58 proper(0') -> ok(0') 64.70/17.58 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.58 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.58 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.58 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.58 U103(ok(X)) -> ok(U103(X)) 64.70/17.58 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.58 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.58 snd(ok(X)) -> ok(snd(X)) 64.70/17.58 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.58 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.58 U112(ok(X)) -> ok(U112(X)) 64.70/17.58 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.58 U122(ok(X)) -> ok(U122(X)) 64.70/17.58 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.58 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.58 U133(ok(X)) -> ok(U133(X)) 64.70/17.58 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.58 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.58 U143(ok(X)) -> ok(U143(X)) 64.70/17.58 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.58 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.58 U153(ok(X)) -> ok(U153(X)) 64.70/17.58 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.58 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.58 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.58 s(ok(X)) -> ok(s(X)) 64.70/17.58 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.58 head(ok(X)) -> ok(head(X)) 64.70/17.58 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.58 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.58 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.58 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.58 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.58 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.58 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.58 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.58 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.58 fst(ok(X)) -> ok(fst(X)) 64.70/17.58 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.58 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.58 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.58 U43(ok(X)) -> ok(U43(X)) 64.70/17.58 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.58 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.58 U53(ok(X)) -> ok(U53(X)) 64.70/17.58 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.58 U62(ok(X)) -> ok(U62(X)) 64.70/17.58 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.58 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.58 U72(ok(X)) -> ok(U72(X)) 64.70/17.58 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.58 U82(ok(X)) -> ok(U82(X)) 64.70/17.58 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.58 U92(ok(X)) -> ok(U92(X)) 64.70/17.58 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.58 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.58 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.58 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.58 tail(ok(X)) -> ok(tail(X)) 64.70/17.58 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.58 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.58 top(mark(X)) -> top(proper(X)) 64.70/17.58 top(ok(X)) -> top(active(X)) 64.70/17.58 64.70/17.58 Types: 64.70/17.58 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tt :: tt:mark:nil:0':ok 64.70/17.58 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 nil :: tt:mark:nil:0':ok 64.70/17.58 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 0' :: tt:mark:nil:0':ok 64.70/17.58 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 top :: tt:mark:nil:0':ok -> top 64.70/17.58 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.58 hole_top2_0 :: top 64.70/17.58 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.58 64.70/17.58 64.70/17.58 Lemmas: 64.70/17.58 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.58 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.58 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.58 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.58 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.58 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.58 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.58 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.58 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.58 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.58 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.58 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.58 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.58 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.58 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.58 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.58 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.58 64.70/17.58 64.70/17.58 Generator Equations: 64.70/17.58 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.58 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.58 64.70/17.58 64.70/17.58 The following defined symbols remain to be analysed: 64.70/17.58 pair, active, U202, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.58 64.70/17.58 They will be analysed ascendingly in the following order: 64.70/17.58 pair < active 64.70/17.58 U202 < active 64.70/17.58 fst < active 64.70/17.58 U42 < active 64.70/17.58 U43 < active 64.70/17.58 U52 < active 64.70/17.58 U53 < active 64.70/17.58 U62 < active 64.70/17.58 isPLNat < active 64.70/17.58 U72 < active 64.70/17.58 U82 < active 64.70/17.58 U92 < active 64.70/17.58 U11 < active 64.70/17.58 and < active 64.70/17.58 isNaturalKind < active 64.70/17.58 isLNatKind < active 64.70/17.58 U21 < active 64.70/17.58 U31 < active 64.70/17.58 U41 < active 64.70/17.58 U51 < active 64.70/17.58 U61 < active 64.70/17.58 isPLNatKind < active 64.70/17.58 U71 < active 64.70/17.58 U81 < active 64.70/17.58 U91 < active 64.70/17.58 U101 < active 64.70/17.58 U111 < active 64.70/17.58 U121 < active 64.70/17.58 U131 < active 64.70/17.58 U141 < active 64.70/17.58 U151 < active 64.70/17.58 U161 < active 64.70/17.58 U171 < active 64.70/17.58 U181 < active 64.70/17.58 U191 < active 64.70/17.58 U201 < active 64.70/17.58 U211 < active 64.70/17.58 U221 < active 64.70/17.58 tail < active 64.70/17.58 take < active 64.70/17.58 sel < active 64.70/17.58 active < top 64.70/17.58 pair < proper 64.70/17.58 U202 < proper 64.70/17.58 fst < proper 64.70/17.58 U42 < proper 64.70/17.58 U43 < proper 64.70/17.58 U52 < proper 64.70/17.58 U53 < proper 64.70/17.58 U62 < proper 64.70/17.58 isPLNat < proper 64.70/17.58 U72 < proper 64.70/17.58 U82 < proper 64.70/17.58 U92 < proper 64.70/17.58 U11 < proper 64.70/17.58 and < proper 64.70/17.58 isNaturalKind < proper 64.70/17.58 isLNatKind < proper 64.70/17.58 U21 < proper 64.70/17.58 U31 < proper 64.70/17.58 U41 < proper 64.70/17.58 U51 < proper 64.70/17.58 U61 < proper 64.70/17.58 isPLNatKind < proper 64.70/17.58 U71 < proper 64.70/17.58 U81 < proper 64.70/17.58 U91 < proper 64.70/17.58 U101 < proper 64.70/17.58 U111 < proper 64.70/17.58 U121 < proper 64.70/17.58 U131 < proper 64.70/17.58 U141 < proper 64.70/17.58 U151 < proper 64.70/17.58 U161 < proper 64.70/17.58 U171 < proper 64.70/17.58 U181 < proper 64.70/17.58 U191 < proper 64.70/17.58 U201 < proper 64.70/17.58 U211 < proper 64.70/17.58 U221 < proper 64.70/17.58 tail < proper 64.70/17.58 take < proper 64.70/17.58 sel < proper 64.70/17.58 proper < top 64.70/17.58 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (63) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.58 Proved the following rewrite lemma: 64.70/17.58 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.58 64.70/17.58 Induction Base: 64.70/17.58 pair(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.58 64.70/17.58 Induction Step: 64.70/17.58 pair(gen_tt:mark:nil:0':ok3_0(+(1, +(n70926_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.58 mark(pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.58 mark(*4_0) 64.70/17.58 64.70/17.58 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (64) 64.70/17.58 Obligation: 64.70/17.58 TRS: 64.70/17.58 Rules: 64.70/17.58 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.58 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.58 active(U103(tt)) -> mark(tt) 64.70/17.58 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.58 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.58 active(U112(tt)) -> mark(tt) 64.70/17.58 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.58 active(U122(tt)) -> mark(tt) 64.70/17.58 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.58 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.58 active(U133(tt)) -> mark(tt) 64.70/17.58 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.58 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.58 active(U143(tt)) -> mark(tt) 64.70/17.58 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.58 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.58 active(U153(tt)) -> mark(tt) 64.70/17.58 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.58 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.58 active(U181(tt, Y)) -> mark(Y) 64.70/17.58 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.58 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.58 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.58 active(U21(tt, X)) -> mark(X) 64.70/17.58 active(U211(tt, XS)) -> mark(XS) 64.70/17.58 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.58 active(U31(tt, N)) -> mark(N) 64.70/17.58 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.58 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.58 active(U43(tt)) -> mark(tt) 64.70/17.58 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.58 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.58 active(U53(tt)) -> mark(tt) 64.70/17.58 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.58 active(U62(tt)) -> mark(tt) 64.70/17.58 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.58 active(U72(tt)) -> mark(tt) 64.70/17.58 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.58 active(U82(tt)) -> mark(tt) 64.70/17.58 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.58 active(U92(tt)) -> mark(tt) 64.70/17.58 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(and(tt, X)) -> mark(X) 64.70/17.58 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.58 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.58 active(isLNat(nil)) -> mark(tt) 64.70/17.58 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.58 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.58 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNatKind(nil)) -> mark(tt) 64.70/17.58 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isNatural(0')) -> mark(tt) 64.70/17.58 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.58 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.58 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isNaturalKind(0')) -> mark(tt) 64.70/17.58 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.58 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.58 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.58 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.58 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.58 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.58 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.58 active(U103(X)) -> U103(active(X)) 64.70/17.58 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.58 active(snd(X)) -> snd(active(X)) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.58 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.58 active(U112(X)) -> U112(active(X)) 64.70/17.58 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.58 active(U122(X)) -> U122(active(X)) 64.70/17.58 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.58 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.58 active(U133(X)) -> U133(active(X)) 64.70/17.58 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.58 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.58 active(U143(X)) -> U143(active(X)) 64.70/17.58 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.58 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.58 active(U153(X)) -> U153(active(X)) 64.70/17.58 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.58 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.58 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.58 active(s(X)) -> s(active(X)) 64.70/17.58 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.58 active(head(X)) -> head(active(X)) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.58 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.58 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.58 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.58 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.58 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.58 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.58 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.58 active(fst(X)) -> fst(active(X)) 64.70/17.58 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.58 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.58 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.58 active(U43(X)) -> U43(active(X)) 64.70/17.58 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.58 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.58 active(U53(X)) -> U53(active(X)) 64.70/17.58 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.58 active(U62(X)) -> U62(active(X)) 64.70/17.58 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.58 active(U72(X)) -> U72(active(X)) 64.70/17.58 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.58 active(U82(X)) -> U82(active(X)) 64.70/17.58 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.58 active(U92(X)) -> U92(active(X)) 64.70/17.58 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.58 active(tail(X)) -> tail(active(X)) 64.70/17.58 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.58 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.58 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.58 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.58 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.58 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.58 U103(mark(X)) -> mark(U103(X)) 64.70/17.58 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.58 snd(mark(X)) -> mark(snd(X)) 64.70/17.58 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.58 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.58 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.58 U112(mark(X)) -> mark(U112(X)) 64.70/17.58 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.58 U122(mark(X)) -> mark(U122(X)) 64.70/17.58 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.58 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.58 U133(mark(X)) -> mark(U133(X)) 64.70/17.58 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.58 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.58 U143(mark(X)) -> mark(U143(X)) 64.70/17.58 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.58 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.58 U153(mark(X)) -> mark(U153(X)) 64.70/17.58 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.58 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.58 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.58 s(mark(X)) -> mark(s(X)) 64.70/17.58 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.58 head(mark(X)) -> mark(head(X)) 64.70/17.58 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.58 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.58 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.58 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.58 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.58 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.58 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.58 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.58 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.58 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.58 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.58 fst(mark(X)) -> mark(fst(X)) 64.70/17.58 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.58 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.58 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.58 U43(mark(X)) -> mark(U43(X)) 64.70/17.58 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.58 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.58 U53(mark(X)) -> mark(U53(X)) 64.70/17.58 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.58 U62(mark(X)) -> mark(U62(X)) 64.70/17.58 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.58 U72(mark(X)) -> mark(U72(X)) 64.70/17.58 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.58 U82(mark(X)) -> mark(U82(X)) 64.70/17.58 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.58 U92(mark(X)) -> mark(U92(X)) 64.70/17.58 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.58 tail(mark(X)) -> mark(tail(X)) 64.70/17.58 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.58 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.58 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.58 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.58 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(tt) -> ok(tt) 64.70/17.58 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.58 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.58 proper(U103(X)) -> U103(proper(X)) 64.70/17.58 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.58 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(snd(X)) -> snd(proper(X)) 64.70/17.58 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.58 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.58 proper(U112(X)) -> U112(proper(X)) 64.70/17.58 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.58 proper(U122(X)) -> U122(proper(X)) 64.70/17.58 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.58 proper(U133(X)) -> U133(proper(X)) 64.70/17.58 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.58 proper(U143(X)) -> U143(proper(X)) 64.70/17.58 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.58 proper(U153(X)) -> U153(proper(X)) 64.70/17.58 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.58 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.58 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.58 proper(s(X)) -> s(proper(X)) 64.70/17.58 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(head(X)) -> head(proper(X)) 64.70/17.58 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.58 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.58 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.58 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.58 proper(nil) -> ok(nil) 64.70/17.58 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.58 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.58 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.58 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.58 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(fst(X)) -> fst(proper(X)) 64.70/17.58 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.58 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.58 proper(U43(X)) -> U43(proper(X)) 64.70/17.58 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.58 proper(U53(X)) -> U53(proper(X)) 64.70/17.58 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.58 proper(U62(X)) -> U62(proper(X)) 64.70/17.58 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.58 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.58 proper(U72(X)) -> U72(proper(X)) 64.70/17.58 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.58 proper(U82(X)) -> U82(proper(X)) 64.70/17.58 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.58 proper(U92(X)) -> U92(proper(X)) 64.70/17.58 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.58 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.58 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.58 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.58 proper(tail(X)) -> tail(proper(X)) 64.70/17.58 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.58 proper(0') -> ok(0') 64.70/17.58 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.58 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.58 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.58 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.58 U103(ok(X)) -> ok(U103(X)) 64.70/17.58 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.58 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.58 snd(ok(X)) -> ok(snd(X)) 64.70/17.58 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.58 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.58 U112(ok(X)) -> ok(U112(X)) 64.70/17.58 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.58 U122(ok(X)) -> ok(U122(X)) 64.70/17.58 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.58 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.58 U133(ok(X)) -> ok(U133(X)) 64.70/17.58 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.58 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.58 U143(ok(X)) -> ok(U143(X)) 64.70/17.58 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.58 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.58 U153(ok(X)) -> ok(U153(X)) 64.70/17.58 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.58 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.58 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.58 s(ok(X)) -> ok(s(X)) 64.70/17.58 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.58 head(ok(X)) -> ok(head(X)) 64.70/17.58 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.58 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.58 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.58 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.58 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.58 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.58 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.58 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.58 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.58 fst(ok(X)) -> ok(fst(X)) 64.70/17.58 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.58 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.58 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.58 U43(ok(X)) -> ok(U43(X)) 64.70/17.58 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.58 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.58 U53(ok(X)) -> ok(U53(X)) 64.70/17.58 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.58 U62(ok(X)) -> ok(U62(X)) 64.70/17.58 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.58 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.58 U72(ok(X)) -> ok(U72(X)) 64.70/17.58 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.58 U82(ok(X)) -> ok(U82(X)) 64.70/17.58 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.58 U92(ok(X)) -> ok(U92(X)) 64.70/17.58 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.58 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.58 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.58 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.58 tail(ok(X)) -> ok(tail(X)) 64.70/17.58 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.58 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.58 top(mark(X)) -> top(proper(X)) 64.70/17.58 top(ok(X)) -> top(active(X)) 64.70/17.58 64.70/17.58 Types: 64.70/17.58 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tt :: tt:mark:nil:0':ok 64.70/17.58 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 nil :: tt:mark:nil:0':ok 64.70/17.58 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 0' :: tt:mark:nil:0':ok 64.70/17.58 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 top :: tt:mark:nil:0':ok -> top 64.70/17.58 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.58 hole_top2_0 :: top 64.70/17.58 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.58 64.70/17.58 64.70/17.58 Lemmas: 64.70/17.58 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.58 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.58 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.58 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.58 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.58 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.58 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.58 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.58 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.58 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.58 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.58 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.58 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.58 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.58 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.58 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.58 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.58 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.58 64.70/17.58 64.70/17.58 Generator Equations: 64.70/17.58 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.58 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.58 64.70/17.58 64.70/17.58 The following defined symbols remain to be analysed: 64.70/17.58 U202, active, fst, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.58 64.70/17.58 They will be analysed ascendingly in the following order: 64.70/17.58 U202 < active 64.70/17.58 fst < active 64.70/17.58 U42 < active 64.70/17.58 U43 < active 64.70/17.58 U52 < active 64.70/17.58 U53 < active 64.70/17.58 U62 < active 64.70/17.58 isPLNat < active 64.70/17.58 U72 < active 64.70/17.58 U82 < active 64.70/17.58 U92 < active 64.70/17.58 U11 < active 64.70/17.58 and < active 64.70/17.58 isNaturalKind < active 64.70/17.58 isLNatKind < active 64.70/17.58 U21 < active 64.70/17.58 U31 < active 64.70/17.58 U41 < active 64.70/17.58 U51 < active 64.70/17.58 U61 < active 64.70/17.58 isPLNatKind < active 64.70/17.58 U71 < active 64.70/17.58 U81 < active 64.70/17.58 U91 < active 64.70/17.58 U101 < active 64.70/17.58 U111 < active 64.70/17.58 U121 < active 64.70/17.58 U131 < active 64.70/17.58 U141 < active 64.70/17.58 U151 < active 64.70/17.58 U161 < active 64.70/17.58 U171 < active 64.70/17.58 U181 < active 64.70/17.58 U191 < active 64.70/17.58 U201 < active 64.70/17.58 U211 < active 64.70/17.58 U221 < active 64.70/17.58 tail < active 64.70/17.58 take < active 64.70/17.58 sel < active 64.70/17.58 active < top 64.70/17.58 U202 < proper 64.70/17.58 fst < proper 64.70/17.58 U42 < proper 64.70/17.58 U43 < proper 64.70/17.58 U52 < proper 64.70/17.58 U53 < proper 64.70/17.58 U62 < proper 64.70/17.58 isPLNat < proper 64.70/17.58 U72 < proper 64.70/17.58 U82 < proper 64.70/17.58 U92 < proper 64.70/17.58 U11 < proper 64.70/17.58 and < proper 64.70/17.58 isNaturalKind < proper 64.70/17.58 isLNatKind < proper 64.70/17.58 U21 < proper 64.70/17.58 U31 < proper 64.70/17.58 U41 < proper 64.70/17.58 U51 < proper 64.70/17.58 U61 < proper 64.70/17.58 isPLNatKind < proper 64.70/17.58 U71 < proper 64.70/17.58 U81 < proper 64.70/17.58 U91 < proper 64.70/17.58 U101 < proper 64.70/17.58 U111 < proper 64.70/17.58 U121 < proper 64.70/17.58 U131 < proper 64.70/17.58 U141 < proper 64.70/17.58 U151 < proper 64.70/17.58 U161 < proper 64.70/17.58 U171 < proper 64.70/17.58 U181 < proper 64.70/17.58 U191 < proper 64.70/17.58 U201 < proper 64.70/17.58 U211 < proper 64.70/17.58 U221 < proper 64.70/17.58 tail < proper 64.70/17.58 take < proper 64.70/17.58 sel < proper 64.70/17.58 proper < top 64.70/17.58 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (65) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.58 Proved the following rewrite lemma: 64.70/17.58 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.58 64.70/17.58 Induction Base: 64.70/17.58 U202(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.58 64.70/17.58 Induction Step: 64.70/17.58 U202(gen_tt:mark:nil:0':ok3_0(+(1, +(n80304_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.58 mark(U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.58 mark(*4_0) 64.70/17.58 64.70/17.58 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (66) 64.70/17.58 Obligation: 64.70/17.58 TRS: 64.70/17.58 Rules: 64.70/17.58 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.58 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.58 active(U103(tt)) -> mark(tt) 64.70/17.58 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.58 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.58 active(U112(tt)) -> mark(tt) 64.70/17.58 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.58 active(U122(tt)) -> mark(tt) 64.70/17.58 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.58 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.58 active(U133(tt)) -> mark(tt) 64.70/17.58 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.58 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.58 active(U143(tt)) -> mark(tt) 64.70/17.58 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.58 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.58 active(U153(tt)) -> mark(tt) 64.70/17.58 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.58 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.58 active(U181(tt, Y)) -> mark(Y) 64.70/17.58 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.58 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.58 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.58 active(U21(tt, X)) -> mark(X) 64.70/17.58 active(U211(tt, XS)) -> mark(XS) 64.70/17.58 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.58 active(U31(tt, N)) -> mark(N) 64.70/17.58 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.58 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.58 active(U43(tt)) -> mark(tt) 64.70/17.58 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.58 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.58 active(U53(tt)) -> mark(tt) 64.70/17.58 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.58 active(U62(tt)) -> mark(tt) 64.70/17.58 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.58 active(U72(tt)) -> mark(tt) 64.70/17.58 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.58 active(U82(tt)) -> mark(tt) 64.70/17.58 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.58 active(U92(tt)) -> mark(tt) 64.70/17.58 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(and(tt, X)) -> mark(X) 64.70/17.58 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.58 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.58 active(isLNat(nil)) -> mark(tt) 64.70/17.58 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.58 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.58 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNatKind(nil)) -> mark(tt) 64.70/17.58 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isNatural(0')) -> mark(tt) 64.70/17.58 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.58 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.58 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isNaturalKind(0')) -> mark(tt) 64.70/17.58 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.58 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.58 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.58 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.58 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.58 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.58 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.58 active(U103(X)) -> U103(active(X)) 64.70/17.58 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.58 active(snd(X)) -> snd(active(X)) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.58 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.58 active(U112(X)) -> U112(active(X)) 64.70/17.58 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.58 active(U122(X)) -> U122(active(X)) 64.70/17.58 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.58 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.58 active(U133(X)) -> U133(active(X)) 64.70/17.58 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.58 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.58 active(U143(X)) -> U143(active(X)) 64.70/17.58 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.58 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.58 active(U153(X)) -> U153(active(X)) 64.70/17.58 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.58 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.58 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.58 active(s(X)) -> s(active(X)) 64.70/17.58 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.58 active(head(X)) -> head(active(X)) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.58 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.58 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.58 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.58 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.58 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.58 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.58 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.58 active(fst(X)) -> fst(active(X)) 64.70/17.58 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.58 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.58 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.58 active(U43(X)) -> U43(active(X)) 64.70/17.58 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.58 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.58 active(U53(X)) -> U53(active(X)) 64.70/17.58 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.58 active(U62(X)) -> U62(active(X)) 64.70/17.58 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.58 active(U72(X)) -> U72(active(X)) 64.70/17.58 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.58 active(U82(X)) -> U82(active(X)) 64.70/17.58 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.58 active(U92(X)) -> U92(active(X)) 64.70/17.58 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.58 active(tail(X)) -> tail(active(X)) 64.70/17.58 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.58 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.58 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.58 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.58 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.58 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.58 U103(mark(X)) -> mark(U103(X)) 64.70/17.58 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.58 snd(mark(X)) -> mark(snd(X)) 64.70/17.58 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.58 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.58 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.58 U112(mark(X)) -> mark(U112(X)) 64.70/17.58 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.58 U122(mark(X)) -> mark(U122(X)) 64.70/17.58 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.58 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.58 U133(mark(X)) -> mark(U133(X)) 64.70/17.58 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.58 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.58 U143(mark(X)) -> mark(U143(X)) 64.70/17.58 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.58 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.58 U153(mark(X)) -> mark(U153(X)) 64.70/17.58 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.58 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.58 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.58 s(mark(X)) -> mark(s(X)) 64.70/17.58 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.58 head(mark(X)) -> mark(head(X)) 64.70/17.58 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.58 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.58 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.58 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.58 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.58 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.58 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.58 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.58 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.58 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.58 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.58 fst(mark(X)) -> mark(fst(X)) 64.70/17.58 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.58 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.58 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.58 U43(mark(X)) -> mark(U43(X)) 64.70/17.58 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.58 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.58 U53(mark(X)) -> mark(U53(X)) 64.70/17.58 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.58 U62(mark(X)) -> mark(U62(X)) 64.70/17.58 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.58 U72(mark(X)) -> mark(U72(X)) 64.70/17.58 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.58 U82(mark(X)) -> mark(U82(X)) 64.70/17.58 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.58 U92(mark(X)) -> mark(U92(X)) 64.70/17.58 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.58 tail(mark(X)) -> mark(tail(X)) 64.70/17.58 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.58 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.58 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.58 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.58 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(tt) -> ok(tt) 64.70/17.58 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.58 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.58 proper(U103(X)) -> U103(proper(X)) 64.70/17.58 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.58 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(snd(X)) -> snd(proper(X)) 64.70/17.58 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.58 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.58 proper(U112(X)) -> U112(proper(X)) 64.70/17.58 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.58 proper(U122(X)) -> U122(proper(X)) 64.70/17.58 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.58 proper(U133(X)) -> U133(proper(X)) 64.70/17.58 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.58 proper(U143(X)) -> U143(proper(X)) 64.70/17.58 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.58 proper(U153(X)) -> U153(proper(X)) 64.70/17.58 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.58 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.58 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.58 proper(s(X)) -> s(proper(X)) 64.70/17.58 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(head(X)) -> head(proper(X)) 64.70/17.58 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.58 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.58 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.58 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.58 proper(nil) -> ok(nil) 64.70/17.58 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.58 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.58 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.58 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.58 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(fst(X)) -> fst(proper(X)) 64.70/17.58 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.58 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.58 proper(U43(X)) -> U43(proper(X)) 64.70/17.58 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.58 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.58 proper(U53(X)) -> U53(proper(X)) 64.70/17.58 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.58 proper(U62(X)) -> U62(proper(X)) 64.70/17.58 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.58 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.58 proper(U72(X)) -> U72(proper(X)) 64.70/17.58 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.58 proper(U82(X)) -> U82(proper(X)) 64.70/17.58 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.58 proper(U92(X)) -> U92(proper(X)) 64.70/17.58 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.58 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.58 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.58 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.58 proper(tail(X)) -> tail(proper(X)) 64.70/17.58 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.58 proper(0') -> ok(0') 64.70/17.58 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.58 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.58 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.58 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.58 U103(ok(X)) -> ok(U103(X)) 64.70/17.58 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.58 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.58 snd(ok(X)) -> ok(snd(X)) 64.70/17.58 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.58 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.58 U112(ok(X)) -> ok(U112(X)) 64.70/17.58 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.58 U122(ok(X)) -> ok(U122(X)) 64.70/17.58 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.58 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.58 U133(ok(X)) -> ok(U133(X)) 64.70/17.58 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.58 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.58 U143(ok(X)) -> ok(U143(X)) 64.70/17.58 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.58 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.58 U153(ok(X)) -> ok(U153(X)) 64.70/17.58 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.58 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.58 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.58 s(ok(X)) -> ok(s(X)) 64.70/17.58 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.58 head(ok(X)) -> ok(head(X)) 64.70/17.58 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.58 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.58 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.58 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.58 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.58 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.58 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.58 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.58 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.58 fst(ok(X)) -> ok(fst(X)) 64.70/17.58 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.58 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.58 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.58 U43(ok(X)) -> ok(U43(X)) 64.70/17.58 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.58 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.58 U53(ok(X)) -> ok(U53(X)) 64.70/17.58 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.58 U62(ok(X)) -> ok(U62(X)) 64.70/17.58 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.58 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.58 U72(ok(X)) -> ok(U72(X)) 64.70/17.58 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.58 U82(ok(X)) -> ok(U82(X)) 64.70/17.58 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.58 U92(ok(X)) -> ok(U92(X)) 64.70/17.58 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.58 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.58 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.58 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.58 tail(ok(X)) -> ok(tail(X)) 64.70/17.58 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.58 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.58 top(mark(X)) -> top(proper(X)) 64.70/17.58 top(ok(X)) -> top(active(X)) 64.70/17.58 64.70/17.58 Types: 64.70/17.58 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tt :: tt:mark:nil:0':ok 64.70/17.58 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 nil :: tt:mark:nil:0':ok 64.70/17.58 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 0' :: tt:mark:nil:0':ok 64.70/17.58 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.58 top :: tt:mark:nil:0':ok -> top 64.70/17.58 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.58 hole_top2_0 :: top 64.70/17.58 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.58 64.70/17.58 64.70/17.58 Lemmas: 64.70/17.58 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.58 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.58 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.58 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.58 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.58 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.58 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.58 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.58 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.58 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.58 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.58 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.58 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.58 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.58 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.58 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.58 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.58 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.58 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.58 64.70/17.58 64.70/17.58 Generator Equations: 64.70/17.58 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.58 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.58 64.70/17.58 64.70/17.58 The following defined symbols remain to be analysed: 64.70/17.58 fst, active, U42, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.58 64.70/17.58 They will be analysed ascendingly in the following order: 64.70/17.58 fst < active 64.70/17.58 U42 < active 64.70/17.58 U43 < active 64.70/17.58 U52 < active 64.70/17.58 U53 < active 64.70/17.58 U62 < active 64.70/17.58 isPLNat < active 64.70/17.58 U72 < active 64.70/17.58 U82 < active 64.70/17.58 U92 < active 64.70/17.58 U11 < active 64.70/17.58 and < active 64.70/17.58 isNaturalKind < active 64.70/17.58 isLNatKind < active 64.70/17.58 U21 < active 64.70/17.58 U31 < active 64.70/17.58 U41 < active 64.70/17.58 U51 < active 64.70/17.58 U61 < active 64.70/17.58 isPLNatKind < active 64.70/17.58 U71 < active 64.70/17.58 U81 < active 64.70/17.58 U91 < active 64.70/17.58 U101 < active 64.70/17.58 U111 < active 64.70/17.58 U121 < active 64.70/17.58 U131 < active 64.70/17.58 U141 < active 64.70/17.58 U151 < active 64.70/17.58 U161 < active 64.70/17.58 U171 < active 64.70/17.58 U181 < active 64.70/17.58 U191 < active 64.70/17.58 U201 < active 64.70/17.58 U211 < active 64.70/17.58 U221 < active 64.70/17.58 tail < active 64.70/17.58 take < active 64.70/17.58 sel < active 64.70/17.58 active < top 64.70/17.58 fst < proper 64.70/17.58 U42 < proper 64.70/17.58 U43 < proper 64.70/17.58 U52 < proper 64.70/17.58 U53 < proper 64.70/17.58 U62 < proper 64.70/17.58 isPLNat < proper 64.70/17.58 U72 < proper 64.70/17.58 U82 < proper 64.70/17.58 U92 < proper 64.70/17.58 U11 < proper 64.70/17.58 and < proper 64.70/17.58 isNaturalKind < proper 64.70/17.58 isLNatKind < proper 64.70/17.58 U21 < proper 64.70/17.58 U31 < proper 64.70/17.58 U41 < proper 64.70/17.58 U51 < proper 64.70/17.58 U61 < proper 64.70/17.58 isPLNatKind < proper 64.70/17.58 U71 < proper 64.70/17.58 U81 < proper 64.70/17.58 U91 < proper 64.70/17.58 U101 < proper 64.70/17.58 U111 < proper 64.70/17.58 U121 < proper 64.70/17.58 U131 < proper 64.70/17.58 U141 < proper 64.70/17.58 U151 < proper 64.70/17.58 U161 < proper 64.70/17.58 U171 < proper 64.70/17.58 U181 < proper 64.70/17.58 U191 < proper 64.70/17.58 U201 < proper 64.70/17.58 U211 < proper 64.70/17.58 U221 < proper 64.70/17.58 tail < proper 64.70/17.58 take < proper 64.70/17.58 sel < proper 64.70/17.58 proper < top 64.70/17.58 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (67) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.58 Proved the following rewrite lemma: 64.70/17.58 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.58 64.70/17.58 Induction Base: 64.70/17.58 fst(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.58 64.70/17.58 Induction Step: 64.70/17.58 fst(gen_tt:mark:nil:0':ok3_0(+(1, +(n89789_0, 1)))) ->_R^Omega(1) 64.70/17.58 mark(fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0)))) ->_IH 64.70/17.58 mark(*4_0) 64.70/17.58 64.70/17.58 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.58 ---------------------------------------- 64.70/17.58 64.70/17.58 (68) 64.70/17.58 Obligation: 64.70/17.58 TRS: 64.70/17.58 Rules: 64.70/17.58 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.58 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.58 active(U103(tt)) -> mark(tt) 64.70/17.58 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.58 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.58 active(U112(tt)) -> mark(tt) 64.70/17.58 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.58 active(U122(tt)) -> mark(tt) 64.70/17.58 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.58 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.58 active(U133(tt)) -> mark(tt) 64.70/17.58 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.58 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.58 active(U143(tt)) -> mark(tt) 64.70/17.58 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.58 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.58 active(U153(tt)) -> mark(tt) 64.70/17.58 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.58 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.58 active(U181(tt, Y)) -> mark(Y) 64.70/17.58 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.58 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.58 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.58 active(U21(tt, X)) -> mark(X) 64.70/17.58 active(U211(tt, XS)) -> mark(XS) 64.70/17.58 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.58 active(U31(tt, N)) -> mark(N) 64.70/17.58 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.58 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.58 active(U43(tt)) -> mark(tt) 64.70/17.58 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.58 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.58 active(U53(tt)) -> mark(tt) 64.70/17.58 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.58 active(U62(tt)) -> mark(tt) 64.70/17.58 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.58 active(U72(tt)) -> mark(tt) 64.70/17.58 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.58 active(U82(tt)) -> mark(tt) 64.70/17.58 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.58 active(U92(tt)) -> mark(tt) 64.70/17.58 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(and(tt, X)) -> mark(X) 64.70/17.58 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.58 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.58 active(isLNat(nil)) -> mark(tt) 64.70/17.58 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.58 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.58 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.58 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isLNatKind(nil)) -> mark(tt) 64.70/17.58 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.58 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isNatural(0')) -> mark(tt) 64.70/17.58 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.58 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.58 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isNaturalKind(0')) -> mark(tt) 64.70/17.58 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.58 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.58 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.58 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.58 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.58 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.58 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.58 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.58 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.58 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.58 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.58 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.58 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.58 active(U103(X)) -> U103(active(X)) 64.70/17.58 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.58 active(snd(X)) -> snd(active(X)) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.58 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.58 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.58 active(U112(X)) -> U112(active(X)) 64.70/17.58 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.58 active(U122(X)) -> U122(active(X)) 64.70/17.58 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.58 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.58 active(U133(X)) -> U133(active(X)) 64.70/17.58 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.58 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.58 active(U143(X)) -> U143(active(X)) 64.70/17.58 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.58 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.58 active(U153(X)) -> U153(active(X)) 64.70/17.58 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.58 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.58 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.58 active(s(X)) -> s(active(X)) 64.70/17.58 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.58 active(head(X)) -> head(active(X)) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.58 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.58 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.58 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.58 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.58 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.58 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.58 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.58 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.58 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.58 active(fst(X)) -> fst(active(X)) 64.70/17.58 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.58 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.58 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.58 active(U43(X)) -> U43(active(X)) 64.70/17.58 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.58 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.58 active(U53(X)) -> U53(active(X)) 64.70/17.58 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.58 active(U62(X)) -> U62(active(X)) 64.70/17.58 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.58 active(U72(X)) -> U72(active(X)) 64.70/17.58 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.58 active(U82(X)) -> U82(active(X)) 64.70/17.58 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.58 active(U92(X)) -> U92(active(X)) 64.70/17.58 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.58 active(tail(X)) -> tail(active(X)) 64.70/17.58 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.58 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.58 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.58 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.58 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.58 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.58 U103(mark(X)) -> mark(U103(X)) 64.70/17.58 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.58 snd(mark(X)) -> mark(snd(X)) 64.70/17.58 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.58 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.58 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.58 U112(mark(X)) -> mark(U112(X)) 64.70/17.58 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.58 U122(mark(X)) -> mark(U122(X)) 64.70/17.58 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.58 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.58 U133(mark(X)) -> mark(U133(X)) 64.70/17.58 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.58 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.58 U143(mark(X)) -> mark(U143(X)) 64.70/17.58 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.58 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.58 U153(mark(X)) -> mark(U153(X)) 64.70/17.58 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.58 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.58 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.58 s(mark(X)) -> mark(s(X)) 64.70/17.58 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.58 head(mark(X)) -> mark(head(X)) 64.70/17.58 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.58 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.58 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.58 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.58 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.58 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.58 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.58 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.58 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.58 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.58 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.58 fst(mark(X)) -> mark(fst(X)) 64.70/17.59 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.59 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.59 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.59 U43(mark(X)) -> mark(U43(X)) 64.70/17.59 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.59 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.59 U53(mark(X)) -> mark(U53(X)) 64.70/17.59 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.59 U62(mark(X)) -> mark(U62(X)) 64.70/17.59 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.59 U72(mark(X)) -> mark(U72(X)) 64.70/17.59 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.59 U82(mark(X)) -> mark(U82(X)) 64.70/17.59 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.59 U92(mark(X)) -> mark(U92(X)) 64.70/17.59 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.59 tail(mark(X)) -> mark(tail(X)) 64.70/17.59 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.59 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.59 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.59 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.59 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(tt) -> ok(tt) 64.70/17.59 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.59 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.59 proper(U103(X)) -> U103(proper(X)) 64.70/17.59 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.59 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(snd(X)) -> snd(proper(X)) 64.70/17.59 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.59 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.59 proper(U112(X)) -> U112(proper(X)) 64.70/17.59 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.59 proper(U122(X)) -> U122(proper(X)) 64.70/17.59 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.59 proper(U133(X)) -> U133(proper(X)) 64.70/17.59 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.59 proper(U143(X)) -> U143(proper(X)) 64.70/17.59 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.59 proper(U153(X)) -> U153(proper(X)) 64.70/17.59 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.59 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.59 proper(s(X)) -> s(proper(X)) 64.70/17.59 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(head(X)) -> head(proper(X)) 64.70/17.59 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.59 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.59 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.59 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.59 proper(nil) -> ok(nil) 64.70/17.59 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.59 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.59 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.59 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.59 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(fst(X)) -> fst(proper(X)) 64.70/17.59 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.59 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.59 proper(U43(X)) -> U43(proper(X)) 64.70/17.59 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.59 proper(U53(X)) -> U53(proper(X)) 64.70/17.59 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.59 proper(U62(X)) -> U62(proper(X)) 64.70/17.59 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.59 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.59 proper(U72(X)) -> U72(proper(X)) 64.70/17.59 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.59 proper(U82(X)) -> U82(proper(X)) 64.70/17.59 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.59 proper(U92(X)) -> U92(proper(X)) 64.70/17.59 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.59 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.59 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.59 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.59 proper(tail(X)) -> tail(proper(X)) 64.70/17.59 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.59 proper(0') -> ok(0') 64.70/17.59 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.59 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.59 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.59 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.59 U103(ok(X)) -> ok(U103(X)) 64.70/17.59 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.59 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.59 snd(ok(X)) -> ok(snd(X)) 64.70/17.59 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.59 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.59 U112(ok(X)) -> ok(U112(X)) 64.70/17.59 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.59 U122(ok(X)) -> ok(U122(X)) 64.70/17.59 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.59 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.59 U133(ok(X)) -> ok(U133(X)) 64.70/17.59 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.59 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.59 U143(ok(X)) -> ok(U143(X)) 64.70/17.59 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.59 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.59 U153(ok(X)) -> ok(U153(X)) 64.70/17.59 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.59 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.59 s(ok(X)) -> ok(s(X)) 64.70/17.59 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.59 head(ok(X)) -> ok(head(X)) 64.70/17.59 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.59 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.59 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.59 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.59 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.59 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.59 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.59 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.59 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.59 fst(ok(X)) -> ok(fst(X)) 64.70/17.59 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.59 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.59 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.59 U43(ok(X)) -> ok(U43(X)) 64.70/17.59 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.59 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.59 U53(ok(X)) -> ok(U53(X)) 64.70/17.59 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.59 U62(ok(X)) -> ok(U62(X)) 64.70/17.59 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.59 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.59 U72(ok(X)) -> ok(U72(X)) 64.70/17.59 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.59 U82(ok(X)) -> ok(U82(X)) 64.70/17.59 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.59 U92(ok(X)) -> ok(U92(X)) 64.70/17.59 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.59 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.59 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.59 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.59 tail(ok(X)) -> ok(tail(X)) 64.70/17.59 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.59 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.59 top(mark(X)) -> top(proper(X)) 64.70/17.59 top(ok(X)) -> top(active(X)) 64.70/17.59 64.70/17.59 Types: 64.70/17.59 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tt :: tt:mark:nil:0':ok 64.70/17.59 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 nil :: tt:mark:nil:0':ok 64.70/17.59 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 0' :: tt:mark:nil:0':ok 64.70/17.59 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 top :: tt:mark:nil:0':ok -> top 64.70/17.59 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.59 hole_top2_0 :: top 64.70/17.59 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.59 64.70/17.59 64.70/17.59 Lemmas: 64.70/17.59 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.59 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.59 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.59 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.59 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.59 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.59 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.59 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.59 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.59 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.59 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.59 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.59 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.59 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.59 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.59 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.59 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.59 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.59 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.59 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.59 64.70/17.59 64.70/17.59 Generator Equations: 64.70/17.59 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.59 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.59 64.70/17.59 64.70/17.59 The following defined symbols remain to be analysed: 64.70/17.59 U42, active, U43, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.59 64.70/17.59 They will be analysed ascendingly in the following order: 64.70/17.59 U42 < active 64.70/17.59 U43 < active 64.70/17.59 U52 < active 64.70/17.59 U53 < active 64.70/17.59 U62 < active 64.70/17.59 isPLNat < active 64.70/17.59 U72 < active 64.70/17.59 U82 < active 64.70/17.59 U92 < active 64.70/17.59 U11 < active 64.70/17.59 and < active 64.70/17.59 isNaturalKind < active 64.70/17.59 isLNatKind < active 64.70/17.59 U21 < active 64.70/17.59 U31 < active 64.70/17.59 U41 < active 64.70/17.59 U51 < active 64.70/17.59 U61 < active 64.70/17.59 isPLNatKind < active 64.70/17.59 U71 < active 64.70/17.59 U81 < active 64.70/17.59 U91 < active 64.70/17.59 U101 < active 64.70/17.59 U111 < active 64.70/17.59 U121 < active 64.70/17.59 U131 < active 64.70/17.59 U141 < active 64.70/17.59 U151 < active 64.70/17.59 U161 < active 64.70/17.59 U171 < active 64.70/17.59 U181 < active 64.70/17.59 U191 < active 64.70/17.59 U201 < active 64.70/17.59 U211 < active 64.70/17.59 U221 < active 64.70/17.59 tail < active 64.70/17.59 take < active 64.70/17.59 sel < active 64.70/17.59 active < top 64.70/17.59 U42 < proper 64.70/17.59 U43 < proper 64.70/17.59 U52 < proper 64.70/17.59 U53 < proper 64.70/17.59 U62 < proper 64.70/17.59 isPLNat < proper 64.70/17.59 U72 < proper 64.70/17.59 U82 < proper 64.70/17.59 U92 < proper 64.70/17.59 U11 < proper 64.70/17.59 and < proper 64.70/17.59 isNaturalKind < proper 64.70/17.59 isLNatKind < proper 64.70/17.59 U21 < proper 64.70/17.59 U31 < proper 64.70/17.59 U41 < proper 64.70/17.59 U51 < proper 64.70/17.59 U61 < proper 64.70/17.59 isPLNatKind < proper 64.70/17.59 U71 < proper 64.70/17.59 U81 < proper 64.70/17.59 U91 < proper 64.70/17.59 U101 < proper 64.70/17.59 U111 < proper 64.70/17.59 U121 < proper 64.70/17.59 U131 < proper 64.70/17.59 U141 < proper 64.70/17.59 U151 < proper 64.70/17.59 U161 < proper 64.70/17.59 U171 < proper 64.70/17.59 U181 < proper 64.70/17.59 U191 < proper 64.70/17.59 U201 < proper 64.70/17.59 U211 < proper 64.70/17.59 U221 < proper 64.70/17.59 tail < proper 64.70/17.59 take < proper 64.70/17.59 sel < proper 64.70/17.59 proper < top 64.70/17.59 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (69) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.59 Proved the following rewrite lemma: 64.70/17.59 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.59 64.70/17.59 Induction Base: 64.70/17.59 U42(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.59 64.70/17.59 Induction Step: 64.70/17.59 U42(gen_tt:mark:nil:0':ok3_0(+(1, +(n93385_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.59 mark(U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.59 mark(*4_0) 64.70/17.59 64.70/17.59 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (70) 64.70/17.59 Obligation: 64.70/17.59 TRS: 64.70/17.59 Rules: 64.70/17.59 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.59 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.59 active(U103(tt)) -> mark(tt) 64.70/17.59 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.59 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.59 active(U112(tt)) -> mark(tt) 64.70/17.59 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.59 active(U122(tt)) -> mark(tt) 64.70/17.59 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.59 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.59 active(U133(tt)) -> mark(tt) 64.70/17.59 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.59 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.59 active(U143(tt)) -> mark(tt) 64.70/17.59 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.59 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.59 active(U153(tt)) -> mark(tt) 64.70/17.59 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.59 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.59 active(U181(tt, Y)) -> mark(Y) 64.70/17.59 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.59 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.59 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.59 active(U21(tt, X)) -> mark(X) 64.70/17.59 active(U211(tt, XS)) -> mark(XS) 64.70/17.59 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.59 active(U31(tt, N)) -> mark(N) 64.70/17.59 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.59 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.59 active(U43(tt)) -> mark(tt) 64.70/17.59 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.59 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.59 active(U53(tt)) -> mark(tt) 64.70/17.59 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.59 active(U62(tt)) -> mark(tt) 64.70/17.59 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.59 active(U72(tt)) -> mark(tt) 64.70/17.59 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.59 active(U82(tt)) -> mark(tt) 64.70/17.59 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.59 active(U92(tt)) -> mark(tt) 64.70/17.59 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(and(tt, X)) -> mark(X) 64.70/17.59 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.59 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.59 active(isLNat(nil)) -> mark(tt) 64.70/17.59 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.59 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.59 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNatKind(nil)) -> mark(tt) 64.70/17.59 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isNatural(0')) -> mark(tt) 64.70/17.59 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.59 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.59 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isNaturalKind(0')) -> mark(tt) 64.70/17.59 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.59 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.59 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.59 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.59 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.59 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.59 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.59 active(U103(X)) -> U103(active(X)) 64.70/17.59 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.59 active(snd(X)) -> snd(active(X)) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.59 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.59 active(U112(X)) -> U112(active(X)) 64.70/17.59 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.59 active(U122(X)) -> U122(active(X)) 64.70/17.59 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.59 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.59 active(U133(X)) -> U133(active(X)) 64.70/17.59 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.59 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.59 active(U143(X)) -> U143(active(X)) 64.70/17.59 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.59 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.59 active(U153(X)) -> U153(active(X)) 64.70/17.59 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.59 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.59 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.59 active(s(X)) -> s(active(X)) 64.70/17.59 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.59 active(head(X)) -> head(active(X)) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.59 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.59 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.59 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.59 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.59 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.59 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.59 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.59 active(fst(X)) -> fst(active(X)) 64.70/17.59 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.59 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.59 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.59 active(U43(X)) -> U43(active(X)) 64.70/17.59 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.59 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.59 active(U53(X)) -> U53(active(X)) 64.70/17.59 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.59 active(U62(X)) -> U62(active(X)) 64.70/17.59 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.59 active(U72(X)) -> U72(active(X)) 64.70/17.59 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.59 active(U82(X)) -> U82(active(X)) 64.70/17.59 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.59 active(U92(X)) -> U92(active(X)) 64.70/17.59 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.59 active(tail(X)) -> tail(active(X)) 64.70/17.59 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.59 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.59 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.59 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.59 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.59 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.59 U103(mark(X)) -> mark(U103(X)) 64.70/17.59 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.59 snd(mark(X)) -> mark(snd(X)) 64.70/17.59 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.59 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.59 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.59 U112(mark(X)) -> mark(U112(X)) 64.70/17.59 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.59 U122(mark(X)) -> mark(U122(X)) 64.70/17.59 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.59 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.59 U133(mark(X)) -> mark(U133(X)) 64.70/17.59 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.59 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.59 U143(mark(X)) -> mark(U143(X)) 64.70/17.59 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.59 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.59 U153(mark(X)) -> mark(U153(X)) 64.70/17.59 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.59 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.59 s(mark(X)) -> mark(s(X)) 64.70/17.59 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.59 head(mark(X)) -> mark(head(X)) 64.70/17.59 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.59 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.59 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.59 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.59 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.59 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.59 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.59 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.59 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.59 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.59 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.59 fst(mark(X)) -> mark(fst(X)) 64.70/17.59 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.59 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.59 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.59 U43(mark(X)) -> mark(U43(X)) 64.70/17.59 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.59 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.59 U53(mark(X)) -> mark(U53(X)) 64.70/17.59 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.59 U62(mark(X)) -> mark(U62(X)) 64.70/17.59 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.59 U72(mark(X)) -> mark(U72(X)) 64.70/17.59 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.59 U82(mark(X)) -> mark(U82(X)) 64.70/17.59 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.59 U92(mark(X)) -> mark(U92(X)) 64.70/17.59 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.59 tail(mark(X)) -> mark(tail(X)) 64.70/17.59 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.59 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.59 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.59 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.59 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(tt) -> ok(tt) 64.70/17.59 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.59 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.59 proper(U103(X)) -> U103(proper(X)) 64.70/17.59 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.59 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(snd(X)) -> snd(proper(X)) 64.70/17.59 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.59 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.59 proper(U112(X)) -> U112(proper(X)) 64.70/17.59 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.59 proper(U122(X)) -> U122(proper(X)) 64.70/17.59 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.59 proper(U133(X)) -> U133(proper(X)) 64.70/17.59 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.59 proper(U143(X)) -> U143(proper(X)) 64.70/17.59 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.59 proper(U153(X)) -> U153(proper(X)) 64.70/17.59 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.59 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.59 proper(s(X)) -> s(proper(X)) 64.70/17.59 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(head(X)) -> head(proper(X)) 64.70/17.59 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.59 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.59 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.59 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.59 proper(nil) -> ok(nil) 64.70/17.59 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.59 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.59 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.59 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.59 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(fst(X)) -> fst(proper(X)) 64.70/17.59 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.59 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.59 proper(U43(X)) -> U43(proper(X)) 64.70/17.59 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.59 proper(U53(X)) -> U53(proper(X)) 64.70/17.59 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.59 proper(U62(X)) -> U62(proper(X)) 64.70/17.59 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.59 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.59 proper(U72(X)) -> U72(proper(X)) 64.70/17.59 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.59 proper(U82(X)) -> U82(proper(X)) 64.70/17.59 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.59 proper(U92(X)) -> U92(proper(X)) 64.70/17.59 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.59 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.59 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.59 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.59 proper(tail(X)) -> tail(proper(X)) 64.70/17.59 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.59 proper(0') -> ok(0') 64.70/17.59 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.59 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.59 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.59 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.59 U103(ok(X)) -> ok(U103(X)) 64.70/17.59 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.59 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.59 snd(ok(X)) -> ok(snd(X)) 64.70/17.59 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.59 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.59 U112(ok(X)) -> ok(U112(X)) 64.70/17.59 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.59 U122(ok(X)) -> ok(U122(X)) 64.70/17.59 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.59 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.59 U133(ok(X)) -> ok(U133(X)) 64.70/17.59 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.59 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.59 U143(ok(X)) -> ok(U143(X)) 64.70/17.59 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.59 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.59 U153(ok(X)) -> ok(U153(X)) 64.70/17.59 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.59 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.59 s(ok(X)) -> ok(s(X)) 64.70/17.59 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.59 head(ok(X)) -> ok(head(X)) 64.70/17.59 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.59 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.59 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.59 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.59 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.59 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.59 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.59 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.59 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.59 fst(ok(X)) -> ok(fst(X)) 64.70/17.59 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.59 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.59 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.59 U43(ok(X)) -> ok(U43(X)) 64.70/17.59 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.59 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.59 U53(ok(X)) -> ok(U53(X)) 64.70/17.59 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.59 U62(ok(X)) -> ok(U62(X)) 64.70/17.59 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.59 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.59 U72(ok(X)) -> ok(U72(X)) 64.70/17.59 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.59 U82(ok(X)) -> ok(U82(X)) 64.70/17.59 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.59 U92(ok(X)) -> ok(U92(X)) 64.70/17.59 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.59 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.59 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.59 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.59 tail(ok(X)) -> ok(tail(X)) 64.70/17.59 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.59 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.59 top(mark(X)) -> top(proper(X)) 64.70/17.59 top(ok(X)) -> top(active(X)) 64.70/17.59 64.70/17.59 Types: 64.70/17.59 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tt :: tt:mark:nil:0':ok 64.70/17.59 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 nil :: tt:mark:nil:0':ok 64.70/17.59 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 0' :: tt:mark:nil:0':ok 64.70/17.59 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 top :: tt:mark:nil:0':ok -> top 64.70/17.59 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.59 hole_top2_0 :: top 64.70/17.59 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.59 64.70/17.59 64.70/17.59 Lemmas: 64.70/17.59 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.59 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.59 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.59 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.59 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.59 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.59 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.59 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.59 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.59 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.59 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.59 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.59 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.59 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.59 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.59 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.59 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.59 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.59 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.59 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.59 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.59 64.70/17.59 64.70/17.59 Generator Equations: 64.70/17.59 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.59 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.59 64.70/17.59 64.70/17.59 The following defined symbols remain to be analysed: 64.70/17.59 U43, active, U52, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.59 64.70/17.59 They will be analysed ascendingly in the following order: 64.70/17.59 U43 < active 64.70/17.59 U52 < active 64.70/17.59 U53 < active 64.70/17.59 U62 < active 64.70/17.59 isPLNat < active 64.70/17.59 U72 < active 64.70/17.59 U82 < active 64.70/17.59 U92 < active 64.70/17.59 U11 < active 64.70/17.59 and < active 64.70/17.59 isNaturalKind < active 64.70/17.59 isLNatKind < active 64.70/17.59 U21 < active 64.70/17.59 U31 < active 64.70/17.59 U41 < active 64.70/17.59 U51 < active 64.70/17.59 U61 < active 64.70/17.59 isPLNatKind < active 64.70/17.59 U71 < active 64.70/17.59 U81 < active 64.70/17.59 U91 < active 64.70/17.59 U101 < active 64.70/17.59 U111 < active 64.70/17.59 U121 < active 64.70/17.59 U131 < active 64.70/17.59 U141 < active 64.70/17.59 U151 < active 64.70/17.59 U161 < active 64.70/17.59 U171 < active 64.70/17.59 U181 < active 64.70/17.59 U191 < active 64.70/17.59 U201 < active 64.70/17.59 U211 < active 64.70/17.59 U221 < active 64.70/17.59 tail < active 64.70/17.59 take < active 64.70/17.59 sel < active 64.70/17.59 active < top 64.70/17.59 U43 < proper 64.70/17.59 U52 < proper 64.70/17.59 U53 < proper 64.70/17.59 U62 < proper 64.70/17.59 isPLNat < proper 64.70/17.59 U72 < proper 64.70/17.59 U82 < proper 64.70/17.59 U92 < proper 64.70/17.59 U11 < proper 64.70/17.59 and < proper 64.70/17.59 isNaturalKind < proper 64.70/17.59 isLNatKind < proper 64.70/17.59 U21 < proper 64.70/17.59 U31 < proper 64.70/17.59 U41 < proper 64.70/17.59 U51 < proper 64.70/17.59 U61 < proper 64.70/17.59 isPLNatKind < proper 64.70/17.59 U71 < proper 64.70/17.59 U81 < proper 64.70/17.59 U91 < proper 64.70/17.59 U101 < proper 64.70/17.59 U111 < proper 64.70/17.59 U121 < proper 64.70/17.59 U131 < proper 64.70/17.59 U141 < proper 64.70/17.59 U151 < proper 64.70/17.59 U161 < proper 64.70/17.59 U171 < proper 64.70/17.59 U181 < proper 64.70/17.59 U191 < proper 64.70/17.59 U201 < proper 64.70/17.59 U211 < proper 64.70/17.59 U221 < proper 64.70/17.59 tail < proper 64.70/17.59 take < proper 64.70/17.59 sel < proper 64.70/17.59 proper < top 64.70/17.59 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (71) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.59 Proved the following rewrite lemma: 64.70/17.59 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.59 64.70/17.59 Induction Base: 64.70/17.59 U43(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.59 64.70/17.59 Induction Step: 64.70/17.59 U43(gen_tt:mark:nil:0':ok3_0(+(1, +(n103384_0, 1)))) ->_R^Omega(1) 64.70/17.59 mark(U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0)))) ->_IH 64.70/17.59 mark(*4_0) 64.70/17.59 64.70/17.59 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (72) 64.70/17.59 Obligation: 64.70/17.59 TRS: 64.70/17.59 Rules: 64.70/17.59 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.59 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.59 active(U103(tt)) -> mark(tt) 64.70/17.59 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.59 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.59 active(U112(tt)) -> mark(tt) 64.70/17.59 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.59 active(U122(tt)) -> mark(tt) 64.70/17.59 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.59 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.59 active(U133(tt)) -> mark(tt) 64.70/17.59 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.59 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.59 active(U143(tt)) -> mark(tt) 64.70/17.59 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.59 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.59 active(U153(tt)) -> mark(tt) 64.70/17.59 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.59 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.59 active(U181(tt, Y)) -> mark(Y) 64.70/17.59 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.59 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.59 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.59 active(U21(tt, X)) -> mark(X) 64.70/17.59 active(U211(tt, XS)) -> mark(XS) 64.70/17.59 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.59 active(U31(tt, N)) -> mark(N) 64.70/17.59 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.59 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.59 active(U43(tt)) -> mark(tt) 64.70/17.59 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.59 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.59 active(U53(tt)) -> mark(tt) 64.70/17.59 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.59 active(U62(tt)) -> mark(tt) 64.70/17.59 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.59 active(U72(tt)) -> mark(tt) 64.70/17.59 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.59 active(U82(tt)) -> mark(tt) 64.70/17.59 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.59 active(U92(tt)) -> mark(tt) 64.70/17.59 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(and(tt, X)) -> mark(X) 64.70/17.59 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.59 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.59 active(isLNat(nil)) -> mark(tt) 64.70/17.59 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.59 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.59 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNatKind(nil)) -> mark(tt) 64.70/17.59 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isNatural(0')) -> mark(tt) 64.70/17.59 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.59 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.59 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isNaturalKind(0')) -> mark(tt) 64.70/17.59 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.59 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.59 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.59 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.59 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.59 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.59 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.59 active(U103(X)) -> U103(active(X)) 64.70/17.59 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.59 active(snd(X)) -> snd(active(X)) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.59 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.59 active(U112(X)) -> U112(active(X)) 64.70/17.59 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.59 active(U122(X)) -> U122(active(X)) 64.70/17.59 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.59 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.59 active(U133(X)) -> U133(active(X)) 64.70/17.59 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.59 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.59 active(U143(X)) -> U143(active(X)) 64.70/17.59 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.59 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.59 active(U153(X)) -> U153(active(X)) 64.70/17.59 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.59 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.59 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.59 active(s(X)) -> s(active(X)) 64.70/17.59 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.59 active(head(X)) -> head(active(X)) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.59 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.59 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.59 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.59 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.59 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.59 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.59 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.59 active(fst(X)) -> fst(active(X)) 64.70/17.59 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.59 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.59 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.59 active(U43(X)) -> U43(active(X)) 64.70/17.59 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.59 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.59 active(U53(X)) -> U53(active(X)) 64.70/17.59 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.59 active(U62(X)) -> U62(active(X)) 64.70/17.59 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.59 active(U72(X)) -> U72(active(X)) 64.70/17.59 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.59 active(U82(X)) -> U82(active(X)) 64.70/17.59 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.59 active(U92(X)) -> U92(active(X)) 64.70/17.59 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.59 active(tail(X)) -> tail(active(X)) 64.70/17.59 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.59 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.59 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.59 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.59 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.59 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.59 U103(mark(X)) -> mark(U103(X)) 64.70/17.59 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.59 snd(mark(X)) -> mark(snd(X)) 64.70/17.59 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.59 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.59 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.59 U112(mark(X)) -> mark(U112(X)) 64.70/17.59 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.59 U122(mark(X)) -> mark(U122(X)) 64.70/17.59 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.59 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.59 U133(mark(X)) -> mark(U133(X)) 64.70/17.59 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.59 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.59 U143(mark(X)) -> mark(U143(X)) 64.70/17.59 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.59 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.59 U153(mark(X)) -> mark(U153(X)) 64.70/17.59 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.59 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.59 s(mark(X)) -> mark(s(X)) 64.70/17.59 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.59 head(mark(X)) -> mark(head(X)) 64.70/17.59 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.59 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.59 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.59 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.59 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.59 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.59 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.59 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.59 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.59 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.59 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.59 fst(mark(X)) -> mark(fst(X)) 64.70/17.59 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.59 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.59 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.59 U43(mark(X)) -> mark(U43(X)) 64.70/17.59 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.59 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.59 U53(mark(X)) -> mark(U53(X)) 64.70/17.59 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.59 U62(mark(X)) -> mark(U62(X)) 64.70/17.59 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.59 U72(mark(X)) -> mark(U72(X)) 64.70/17.59 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.59 U82(mark(X)) -> mark(U82(X)) 64.70/17.59 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.59 U92(mark(X)) -> mark(U92(X)) 64.70/17.59 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.59 tail(mark(X)) -> mark(tail(X)) 64.70/17.59 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.59 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.59 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.59 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.59 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(tt) -> ok(tt) 64.70/17.59 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.59 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.59 proper(U103(X)) -> U103(proper(X)) 64.70/17.59 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.59 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(snd(X)) -> snd(proper(X)) 64.70/17.59 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.59 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.59 proper(U112(X)) -> U112(proper(X)) 64.70/17.59 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.59 proper(U122(X)) -> U122(proper(X)) 64.70/17.59 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.59 proper(U133(X)) -> U133(proper(X)) 64.70/17.59 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.59 proper(U143(X)) -> U143(proper(X)) 64.70/17.59 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.59 proper(U153(X)) -> U153(proper(X)) 64.70/17.59 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.59 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.59 proper(s(X)) -> s(proper(X)) 64.70/17.59 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(head(X)) -> head(proper(X)) 64.70/17.59 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.59 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.59 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.59 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.59 proper(nil) -> ok(nil) 64.70/17.59 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.59 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.59 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.59 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.59 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(fst(X)) -> fst(proper(X)) 64.70/17.59 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.59 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.59 proper(U43(X)) -> U43(proper(X)) 64.70/17.59 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.59 proper(U53(X)) -> U53(proper(X)) 64.70/17.59 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.59 proper(U62(X)) -> U62(proper(X)) 64.70/17.59 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.59 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.59 proper(U72(X)) -> U72(proper(X)) 64.70/17.59 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.59 proper(U82(X)) -> U82(proper(X)) 64.70/17.59 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.59 proper(U92(X)) -> U92(proper(X)) 64.70/17.59 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.59 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.59 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.59 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.59 proper(tail(X)) -> tail(proper(X)) 64.70/17.59 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.59 proper(0') -> ok(0') 64.70/17.59 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.59 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.59 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.59 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.59 U103(ok(X)) -> ok(U103(X)) 64.70/17.59 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.59 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.59 snd(ok(X)) -> ok(snd(X)) 64.70/17.59 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.59 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.59 U112(ok(X)) -> ok(U112(X)) 64.70/17.59 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.59 U122(ok(X)) -> ok(U122(X)) 64.70/17.59 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.59 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.59 U133(ok(X)) -> ok(U133(X)) 64.70/17.59 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.59 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.59 U143(ok(X)) -> ok(U143(X)) 64.70/17.59 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.59 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.59 U153(ok(X)) -> ok(U153(X)) 64.70/17.59 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.59 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.59 s(ok(X)) -> ok(s(X)) 64.70/17.59 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.59 head(ok(X)) -> ok(head(X)) 64.70/17.59 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.59 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.59 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.59 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.59 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.59 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.59 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.59 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.59 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.59 fst(ok(X)) -> ok(fst(X)) 64.70/17.59 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.59 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.59 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.59 U43(ok(X)) -> ok(U43(X)) 64.70/17.59 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.59 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.59 U53(ok(X)) -> ok(U53(X)) 64.70/17.59 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.59 U62(ok(X)) -> ok(U62(X)) 64.70/17.59 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.59 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.59 U72(ok(X)) -> ok(U72(X)) 64.70/17.59 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.59 U82(ok(X)) -> ok(U82(X)) 64.70/17.59 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.59 U92(ok(X)) -> ok(U92(X)) 64.70/17.59 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.59 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.59 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.59 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.59 tail(ok(X)) -> ok(tail(X)) 64.70/17.59 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.59 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.59 top(mark(X)) -> top(proper(X)) 64.70/17.59 top(ok(X)) -> top(active(X)) 64.70/17.59 64.70/17.59 Types: 64.70/17.59 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tt :: tt:mark:nil:0':ok 64.70/17.59 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 nil :: tt:mark:nil:0':ok 64.70/17.59 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 0' :: tt:mark:nil:0':ok 64.70/17.59 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 top :: tt:mark:nil:0':ok -> top 64.70/17.59 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.59 hole_top2_0 :: top 64.70/17.59 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.59 64.70/17.59 64.70/17.59 Lemmas: 64.70/17.59 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.59 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.59 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.59 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.59 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.59 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.59 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.59 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.59 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.59 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.59 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.59 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.59 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.59 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.59 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.59 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.59 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.59 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.59 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.59 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.59 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.59 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.59 64.70/17.59 64.70/17.59 Generator Equations: 64.70/17.59 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.59 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.59 64.70/17.59 64.70/17.59 The following defined symbols remain to be analysed: 64.70/17.59 U52, active, U53, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.59 64.70/17.59 They will be analysed ascendingly in the following order: 64.70/17.59 U52 < active 64.70/17.59 U53 < active 64.70/17.59 U62 < active 64.70/17.59 isPLNat < active 64.70/17.59 U72 < active 64.70/17.59 U82 < active 64.70/17.59 U92 < active 64.70/17.59 U11 < active 64.70/17.59 and < active 64.70/17.59 isNaturalKind < active 64.70/17.59 isLNatKind < active 64.70/17.59 U21 < active 64.70/17.59 U31 < active 64.70/17.59 U41 < active 64.70/17.59 U51 < active 64.70/17.59 U61 < active 64.70/17.59 isPLNatKind < active 64.70/17.59 U71 < active 64.70/17.59 U81 < active 64.70/17.59 U91 < active 64.70/17.59 U101 < active 64.70/17.59 U111 < active 64.70/17.59 U121 < active 64.70/17.59 U131 < active 64.70/17.59 U141 < active 64.70/17.59 U151 < active 64.70/17.59 U161 < active 64.70/17.59 U171 < active 64.70/17.59 U181 < active 64.70/17.59 U191 < active 64.70/17.59 U201 < active 64.70/17.59 U211 < active 64.70/17.59 U221 < active 64.70/17.59 tail < active 64.70/17.59 take < active 64.70/17.59 sel < active 64.70/17.59 active < top 64.70/17.59 U52 < proper 64.70/17.59 U53 < proper 64.70/17.59 U62 < proper 64.70/17.59 isPLNat < proper 64.70/17.59 U72 < proper 64.70/17.59 U82 < proper 64.70/17.59 U92 < proper 64.70/17.59 U11 < proper 64.70/17.59 and < proper 64.70/17.59 isNaturalKind < proper 64.70/17.59 isLNatKind < proper 64.70/17.59 U21 < proper 64.70/17.59 U31 < proper 64.70/17.59 U41 < proper 64.70/17.59 U51 < proper 64.70/17.59 U61 < proper 64.70/17.59 isPLNatKind < proper 64.70/17.59 U71 < proper 64.70/17.59 U81 < proper 64.70/17.59 U91 < proper 64.70/17.59 U101 < proper 64.70/17.59 U111 < proper 64.70/17.59 U121 < proper 64.70/17.59 U131 < proper 64.70/17.59 U141 < proper 64.70/17.59 U151 < proper 64.70/17.59 U161 < proper 64.70/17.59 U171 < proper 64.70/17.59 U181 < proper 64.70/17.59 U191 < proper 64.70/17.59 U201 < proper 64.70/17.59 U211 < proper 64.70/17.59 U221 < proper 64.70/17.59 tail < proper 64.70/17.59 take < proper 64.70/17.59 sel < proper 64.70/17.59 proper < top 64.70/17.59 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (73) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.59 Proved the following rewrite lemma: 64.70/17.59 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.59 64.70/17.59 Induction Base: 64.70/17.59 U52(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.59 64.70/17.59 Induction Step: 64.70/17.59 U52(gen_tt:mark:nil:0':ok3_0(+(1, +(n107231_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.59 mark(U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.59 mark(*4_0) 64.70/17.59 64.70/17.59 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (74) 64.70/17.59 Obligation: 64.70/17.59 TRS: 64.70/17.59 Rules: 64.70/17.59 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.59 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.59 active(U103(tt)) -> mark(tt) 64.70/17.59 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.59 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.59 active(U112(tt)) -> mark(tt) 64.70/17.59 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.59 active(U122(tt)) -> mark(tt) 64.70/17.59 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.59 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.59 active(U133(tt)) -> mark(tt) 64.70/17.59 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.59 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.59 active(U143(tt)) -> mark(tt) 64.70/17.59 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.59 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.59 active(U153(tt)) -> mark(tt) 64.70/17.59 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.59 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.59 active(U181(tt, Y)) -> mark(Y) 64.70/17.59 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.59 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.59 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.59 active(U21(tt, X)) -> mark(X) 64.70/17.59 active(U211(tt, XS)) -> mark(XS) 64.70/17.59 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.59 active(U31(tt, N)) -> mark(N) 64.70/17.59 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.59 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.59 active(U43(tt)) -> mark(tt) 64.70/17.59 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.59 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.59 active(U53(tt)) -> mark(tt) 64.70/17.59 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.59 active(U62(tt)) -> mark(tt) 64.70/17.59 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.59 active(U72(tt)) -> mark(tt) 64.70/17.59 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.59 active(U82(tt)) -> mark(tt) 64.70/17.59 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.59 active(U92(tt)) -> mark(tt) 64.70/17.59 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(and(tt, X)) -> mark(X) 64.70/17.59 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.59 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.59 active(isLNat(nil)) -> mark(tt) 64.70/17.59 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.59 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.59 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNatKind(nil)) -> mark(tt) 64.70/17.59 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isNatural(0')) -> mark(tt) 64.70/17.59 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.59 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.59 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isNaturalKind(0')) -> mark(tt) 64.70/17.59 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.59 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.59 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.59 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.59 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.59 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.59 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.59 active(U103(X)) -> U103(active(X)) 64.70/17.59 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.59 active(snd(X)) -> snd(active(X)) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.59 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.59 active(U112(X)) -> U112(active(X)) 64.70/17.59 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.59 active(U122(X)) -> U122(active(X)) 64.70/17.59 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.59 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.59 active(U133(X)) -> U133(active(X)) 64.70/17.59 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.59 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.59 active(U143(X)) -> U143(active(X)) 64.70/17.59 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.59 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.59 active(U153(X)) -> U153(active(X)) 64.70/17.59 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.59 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.59 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.59 active(s(X)) -> s(active(X)) 64.70/17.59 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.59 active(head(X)) -> head(active(X)) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.59 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.59 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.59 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.59 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.59 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.59 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.59 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.59 active(fst(X)) -> fst(active(X)) 64.70/17.59 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.59 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.59 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.59 active(U43(X)) -> U43(active(X)) 64.70/17.59 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.59 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.59 active(U53(X)) -> U53(active(X)) 64.70/17.59 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.59 active(U62(X)) -> U62(active(X)) 64.70/17.59 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.59 active(U72(X)) -> U72(active(X)) 64.70/17.59 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.59 active(U82(X)) -> U82(active(X)) 64.70/17.59 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.59 active(U92(X)) -> U92(active(X)) 64.70/17.59 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.59 active(tail(X)) -> tail(active(X)) 64.70/17.59 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.59 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.59 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.59 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.59 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.59 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.59 U103(mark(X)) -> mark(U103(X)) 64.70/17.59 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.59 snd(mark(X)) -> mark(snd(X)) 64.70/17.59 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.59 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.59 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.59 U112(mark(X)) -> mark(U112(X)) 64.70/17.59 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.59 U122(mark(X)) -> mark(U122(X)) 64.70/17.59 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.59 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.59 U133(mark(X)) -> mark(U133(X)) 64.70/17.59 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.59 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.59 U143(mark(X)) -> mark(U143(X)) 64.70/17.59 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.59 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.59 U153(mark(X)) -> mark(U153(X)) 64.70/17.59 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.59 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.59 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.59 s(mark(X)) -> mark(s(X)) 64.70/17.59 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.59 head(mark(X)) -> mark(head(X)) 64.70/17.59 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.59 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.59 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.59 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.59 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.59 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.59 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.59 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.59 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.59 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.59 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.59 fst(mark(X)) -> mark(fst(X)) 64.70/17.59 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.59 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.59 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.59 U43(mark(X)) -> mark(U43(X)) 64.70/17.59 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.59 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.59 U53(mark(X)) -> mark(U53(X)) 64.70/17.59 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.59 U62(mark(X)) -> mark(U62(X)) 64.70/17.59 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.59 U72(mark(X)) -> mark(U72(X)) 64.70/17.59 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.59 U82(mark(X)) -> mark(U82(X)) 64.70/17.59 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.59 U92(mark(X)) -> mark(U92(X)) 64.70/17.59 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.59 tail(mark(X)) -> mark(tail(X)) 64.70/17.59 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.59 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.59 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.59 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.59 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(tt) -> ok(tt) 64.70/17.59 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.59 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.59 proper(U103(X)) -> U103(proper(X)) 64.70/17.59 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.59 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(snd(X)) -> snd(proper(X)) 64.70/17.59 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.59 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.59 proper(U112(X)) -> U112(proper(X)) 64.70/17.59 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.59 proper(U122(X)) -> U122(proper(X)) 64.70/17.59 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.59 proper(U133(X)) -> U133(proper(X)) 64.70/17.59 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.59 proper(U143(X)) -> U143(proper(X)) 64.70/17.59 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.59 proper(U153(X)) -> U153(proper(X)) 64.70/17.59 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.59 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.59 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.59 proper(s(X)) -> s(proper(X)) 64.70/17.59 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(head(X)) -> head(proper(X)) 64.70/17.59 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.59 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.59 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.59 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.59 proper(nil) -> ok(nil) 64.70/17.59 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.59 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.59 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.59 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.59 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(fst(X)) -> fst(proper(X)) 64.70/17.59 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.59 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.59 proper(U43(X)) -> U43(proper(X)) 64.70/17.59 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.59 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.59 proper(U53(X)) -> U53(proper(X)) 64.70/17.59 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.59 proper(U62(X)) -> U62(proper(X)) 64.70/17.59 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.59 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.59 proper(U72(X)) -> U72(proper(X)) 64.70/17.59 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.59 proper(U82(X)) -> U82(proper(X)) 64.70/17.59 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.59 proper(U92(X)) -> U92(proper(X)) 64.70/17.59 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.59 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.59 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.59 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.59 proper(tail(X)) -> tail(proper(X)) 64.70/17.59 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.59 proper(0') -> ok(0') 64.70/17.59 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.59 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.59 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.59 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.59 U103(ok(X)) -> ok(U103(X)) 64.70/17.59 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.59 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.59 snd(ok(X)) -> ok(snd(X)) 64.70/17.59 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.59 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.59 U112(ok(X)) -> ok(U112(X)) 64.70/17.59 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.59 U122(ok(X)) -> ok(U122(X)) 64.70/17.59 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.59 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.59 U133(ok(X)) -> ok(U133(X)) 64.70/17.59 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.59 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.59 U143(ok(X)) -> ok(U143(X)) 64.70/17.59 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.59 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.59 U153(ok(X)) -> ok(U153(X)) 64.70/17.59 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.59 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.59 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.59 s(ok(X)) -> ok(s(X)) 64.70/17.59 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.59 head(ok(X)) -> ok(head(X)) 64.70/17.59 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.59 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.59 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.59 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.59 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.59 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.59 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.59 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.59 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.59 fst(ok(X)) -> ok(fst(X)) 64.70/17.59 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.59 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.59 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.59 U43(ok(X)) -> ok(U43(X)) 64.70/17.59 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.59 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.59 U53(ok(X)) -> ok(U53(X)) 64.70/17.59 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.59 U62(ok(X)) -> ok(U62(X)) 64.70/17.59 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.59 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.59 U72(ok(X)) -> ok(U72(X)) 64.70/17.59 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.59 U82(ok(X)) -> ok(U82(X)) 64.70/17.59 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.59 U92(ok(X)) -> ok(U92(X)) 64.70/17.59 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.59 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.59 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.59 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.59 tail(ok(X)) -> ok(tail(X)) 64.70/17.59 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.59 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.59 top(mark(X)) -> top(proper(X)) 64.70/17.59 top(ok(X)) -> top(active(X)) 64.70/17.59 64.70/17.59 Types: 64.70/17.59 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tt :: tt:mark:nil:0':ok 64.70/17.59 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 nil :: tt:mark:nil:0':ok 64.70/17.59 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 0' :: tt:mark:nil:0':ok 64.70/17.59 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.59 top :: tt:mark:nil:0':ok -> top 64.70/17.59 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.59 hole_top2_0 :: top 64.70/17.59 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.59 64.70/17.59 64.70/17.59 Lemmas: 64.70/17.59 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.59 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.59 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.59 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.59 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.59 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.59 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.59 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.59 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.59 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.59 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.59 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.59 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.59 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.59 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.59 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.59 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.59 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.59 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.59 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.59 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.59 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.59 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.59 64.70/17.59 64.70/17.59 Generator Equations: 64.70/17.59 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.59 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.59 64.70/17.59 64.70/17.59 The following defined symbols remain to be analysed: 64.70/17.59 U53, active, U62, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.59 64.70/17.59 They will be analysed ascendingly in the following order: 64.70/17.59 U53 < active 64.70/17.59 U62 < active 64.70/17.59 isPLNat < active 64.70/17.59 U72 < active 64.70/17.59 U82 < active 64.70/17.59 U92 < active 64.70/17.59 U11 < active 64.70/17.59 and < active 64.70/17.59 isNaturalKind < active 64.70/17.59 isLNatKind < active 64.70/17.59 U21 < active 64.70/17.59 U31 < active 64.70/17.59 U41 < active 64.70/17.59 U51 < active 64.70/17.59 U61 < active 64.70/17.59 isPLNatKind < active 64.70/17.59 U71 < active 64.70/17.59 U81 < active 64.70/17.59 U91 < active 64.70/17.59 U101 < active 64.70/17.59 U111 < active 64.70/17.59 U121 < active 64.70/17.59 U131 < active 64.70/17.59 U141 < active 64.70/17.59 U151 < active 64.70/17.59 U161 < active 64.70/17.59 U171 < active 64.70/17.59 U181 < active 64.70/17.59 U191 < active 64.70/17.59 U201 < active 64.70/17.59 U211 < active 64.70/17.59 U221 < active 64.70/17.59 tail < active 64.70/17.59 take < active 64.70/17.59 sel < active 64.70/17.59 active < top 64.70/17.59 U53 < proper 64.70/17.59 U62 < proper 64.70/17.59 isPLNat < proper 64.70/17.59 U72 < proper 64.70/17.59 U82 < proper 64.70/17.59 U92 < proper 64.70/17.59 U11 < proper 64.70/17.59 and < proper 64.70/17.59 isNaturalKind < proper 64.70/17.59 isLNatKind < proper 64.70/17.59 U21 < proper 64.70/17.59 U31 < proper 64.70/17.59 U41 < proper 64.70/17.59 U51 < proper 64.70/17.59 U61 < proper 64.70/17.59 isPLNatKind < proper 64.70/17.59 U71 < proper 64.70/17.59 U81 < proper 64.70/17.59 U91 < proper 64.70/17.59 U101 < proper 64.70/17.59 U111 < proper 64.70/17.59 U121 < proper 64.70/17.59 U131 < proper 64.70/17.59 U141 < proper 64.70/17.59 U151 < proper 64.70/17.59 U161 < proper 64.70/17.59 U171 < proper 64.70/17.59 U181 < proper 64.70/17.59 U191 < proper 64.70/17.59 U201 < proper 64.70/17.59 U211 < proper 64.70/17.59 U221 < proper 64.70/17.59 tail < proper 64.70/17.59 take < proper 64.70/17.59 sel < proper 64.70/17.59 proper < top 64.70/17.59 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (75) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.59 Proved the following rewrite lemma: 64.70/17.59 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.59 64.70/17.59 Induction Base: 64.70/17.59 U53(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.59 64.70/17.59 Induction Step: 64.70/17.59 U53(gen_tt:mark:nil:0':ok3_0(+(1, +(n117744_0, 1)))) ->_R^Omega(1) 64.70/17.59 mark(U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0)))) ->_IH 64.70/17.59 mark(*4_0) 64.70/17.59 64.70/17.59 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.59 ---------------------------------------- 64.70/17.59 64.70/17.59 (76) 64.70/17.59 Obligation: 64.70/17.59 TRS: 64.70/17.59 Rules: 64.70/17.59 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.59 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.59 active(U103(tt)) -> mark(tt) 64.70/17.59 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.59 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.59 active(U112(tt)) -> mark(tt) 64.70/17.59 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.59 active(U122(tt)) -> mark(tt) 64.70/17.59 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.59 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.59 active(U133(tt)) -> mark(tt) 64.70/17.59 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.59 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.59 active(U143(tt)) -> mark(tt) 64.70/17.59 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.59 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.59 active(U153(tt)) -> mark(tt) 64.70/17.59 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.59 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.59 active(U181(tt, Y)) -> mark(Y) 64.70/17.59 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.59 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.59 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.59 active(U21(tt, X)) -> mark(X) 64.70/17.59 active(U211(tt, XS)) -> mark(XS) 64.70/17.59 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.59 active(U31(tt, N)) -> mark(N) 64.70/17.59 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.59 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.59 active(U43(tt)) -> mark(tt) 64.70/17.59 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.59 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.59 active(U53(tt)) -> mark(tt) 64.70/17.59 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.59 active(U62(tt)) -> mark(tt) 64.70/17.59 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.59 active(U72(tt)) -> mark(tt) 64.70/17.59 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.59 active(U82(tt)) -> mark(tt) 64.70/17.59 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.59 active(U92(tt)) -> mark(tt) 64.70/17.59 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(and(tt, X)) -> mark(X) 64.70/17.59 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.59 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.59 active(isLNat(nil)) -> mark(tt) 64.70/17.59 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.59 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.59 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.59 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isLNatKind(nil)) -> mark(tt) 64.70/17.59 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.59 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isNatural(0')) -> mark(tt) 64.70/17.59 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.59 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.59 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isNaturalKind(0')) -> mark(tt) 64.70/17.59 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.59 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.59 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.59 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.59 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.59 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.59 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.59 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.59 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.59 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.59 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.59 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.59 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.59 active(U103(X)) -> U103(active(X)) 64.70/17.59 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.59 active(snd(X)) -> snd(active(X)) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.59 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.59 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.59 active(U112(X)) -> U112(active(X)) 64.70/17.59 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.59 active(U122(X)) -> U122(active(X)) 64.70/17.59 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.59 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.59 active(U133(X)) -> U133(active(X)) 64.70/17.59 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.59 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.59 active(U143(X)) -> U143(active(X)) 64.70/17.59 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.59 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.59 active(U153(X)) -> U153(active(X)) 64.70/17.59 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.59 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.59 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.59 active(s(X)) -> s(active(X)) 64.70/17.59 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.59 active(head(X)) -> head(active(X)) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.59 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.59 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.59 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.59 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.59 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.59 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.59 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.59 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.59 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.59 active(fst(X)) -> fst(active(X)) 64.70/17.59 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.59 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.59 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.59 active(U43(X)) -> U43(active(X)) 64.70/17.59 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.59 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.59 active(U53(X)) -> U53(active(X)) 64.70/17.59 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.59 active(U62(X)) -> U62(active(X)) 64.70/17.59 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.59 active(U72(X)) -> U72(active(X)) 64.70/17.59 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.59 active(U82(X)) -> U82(active(X)) 64.70/17.59 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.59 active(U92(X)) -> U92(active(X)) 64.70/17.59 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.59 active(tail(X)) -> tail(active(X)) 64.70/17.59 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.59 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.59 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.59 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.59 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.59 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.60 U103(mark(X)) -> mark(U103(X)) 64.70/17.60 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.60 snd(mark(X)) -> mark(snd(X)) 64.70/17.60 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.60 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.60 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.60 U112(mark(X)) -> mark(U112(X)) 64.70/17.60 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.60 U122(mark(X)) -> mark(U122(X)) 64.70/17.60 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.60 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.60 U133(mark(X)) -> mark(U133(X)) 64.70/17.60 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.60 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.60 U143(mark(X)) -> mark(U143(X)) 64.70/17.60 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.60 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.60 U153(mark(X)) -> mark(U153(X)) 64.70/17.60 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.60 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.60 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.60 s(mark(X)) -> mark(s(X)) 64.70/17.60 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.60 head(mark(X)) -> mark(head(X)) 64.70/17.60 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.60 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.60 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.60 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.60 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.60 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.60 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.60 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.60 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.60 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.60 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.60 fst(mark(X)) -> mark(fst(X)) 64.70/17.60 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.60 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.60 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.60 U43(mark(X)) -> mark(U43(X)) 64.70/17.60 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.60 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.60 U53(mark(X)) -> mark(U53(X)) 64.70/17.60 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.60 U62(mark(X)) -> mark(U62(X)) 64.70/17.60 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.60 U72(mark(X)) -> mark(U72(X)) 64.70/17.60 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.60 U82(mark(X)) -> mark(U82(X)) 64.70/17.60 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.60 U92(mark(X)) -> mark(U92(X)) 64.70/17.60 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.60 tail(mark(X)) -> mark(tail(X)) 64.70/17.60 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.60 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.60 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.60 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.60 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(tt) -> ok(tt) 64.70/17.60 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.60 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.60 proper(U103(X)) -> U103(proper(X)) 64.70/17.60 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.60 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(snd(X)) -> snd(proper(X)) 64.70/17.60 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.60 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.60 proper(U112(X)) -> U112(proper(X)) 64.70/17.60 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.60 proper(U122(X)) -> U122(proper(X)) 64.70/17.60 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.60 proper(U133(X)) -> U133(proper(X)) 64.70/17.60 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.60 proper(U143(X)) -> U143(proper(X)) 64.70/17.60 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.60 proper(U153(X)) -> U153(proper(X)) 64.70/17.60 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.60 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.60 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.60 proper(s(X)) -> s(proper(X)) 64.70/17.60 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(head(X)) -> head(proper(X)) 64.70/17.60 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.60 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.60 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.60 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.60 proper(nil) -> ok(nil) 64.70/17.60 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.60 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.60 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.60 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.60 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(fst(X)) -> fst(proper(X)) 64.70/17.60 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.60 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.60 proper(U43(X)) -> U43(proper(X)) 64.70/17.60 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.60 proper(U53(X)) -> U53(proper(X)) 64.70/17.60 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.60 proper(U62(X)) -> U62(proper(X)) 64.70/17.60 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.60 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.60 proper(U72(X)) -> U72(proper(X)) 64.70/17.60 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.60 proper(U82(X)) -> U82(proper(X)) 64.70/17.60 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.60 proper(U92(X)) -> U92(proper(X)) 64.70/17.60 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.60 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.60 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.60 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.60 proper(tail(X)) -> tail(proper(X)) 64.70/17.60 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.60 proper(0') -> ok(0') 64.70/17.60 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.60 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.60 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.60 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.60 U103(ok(X)) -> ok(U103(X)) 64.70/17.60 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.60 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.60 snd(ok(X)) -> ok(snd(X)) 64.70/17.60 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.60 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.60 U112(ok(X)) -> ok(U112(X)) 64.70/17.60 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.60 U122(ok(X)) -> ok(U122(X)) 64.70/17.60 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.60 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.60 U133(ok(X)) -> ok(U133(X)) 64.70/17.60 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.60 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.60 U143(ok(X)) -> ok(U143(X)) 64.70/17.60 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.60 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.60 U153(ok(X)) -> ok(U153(X)) 64.70/17.60 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.60 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.60 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.60 s(ok(X)) -> ok(s(X)) 64.70/17.60 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.60 head(ok(X)) -> ok(head(X)) 64.70/17.60 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.60 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.60 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.60 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.60 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.60 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.60 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.60 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.60 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.60 fst(ok(X)) -> ok(fst(X)) 64.70/17.60 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.60 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.60 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.60 U43(ok(X)) -> ok(U43(X)) 64.70/17.60 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.60 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.60 U53(ok(X)) -> ok(U53(X)) 64.70/17.60 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.60 U62(ok(X)) -> ok(U62(X)) 64.70/17.60 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.60 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.60 U72(ok(X)) -> ok(U72(X)) 64.70/17.60 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.60 U82(ok(X)) -> ok(U82(X)) 64.70/17.60 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.60 U92(ok(X)) -> ok(U92(X)) 64.70/17.60 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.60 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.60 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.60 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.60 tail(ok(X)) -> ok(tail(X)) 64.70/17.60 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.60 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.60 top(mark(X)) -> top(proper(X)) 64.70/17.60 top(ok(X)) -> top(active(X)) 64.70/17.60 64.70/17.60 Types: 64.70/17.60 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tt :: tt:mark:nil:0':ok 64.70/17.60 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 nil :: tt:mark:nil:0':ok 64.70/17.60 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 0' :: tt:mark:nil:0':ok 64.70/17.60 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 top :: tt:mark:nil:0':ok -> top 64.70/17.60 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.60 hole_top2_0 :: top 64.70/17.60 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.60 64.70/17.60 64.70/17.60 Lemmas: 64.70/17.60 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.60 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.60 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.60 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.60 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.60 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.60 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.60 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.60 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.60 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.60 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.60 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.60 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.60 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.60 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.60 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.60 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.60 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.60 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.60 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.60 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.60 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.60 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.60 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.60 64.70/17.60 64.70/17.60 Generator Equations: 64.70/17.60 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.60 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.60 64.70/17.60 64.70/17.60 The following defined symbols remain to be analysed: 64.70/17.60 U62, active, isPLNat, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.60 64.70/17.60 They will be analysed ascendingly in the following order: 64.70/17.60 U62 < active 64.70/17.60 isPLNat < active 64.70/17.60 U72 < active 64.70/17.60 U82 < active 64.70/17.60 U92 < active 64.70/17.60 U11 < active 64.70/17.60 and < active 64.70/17.60 isNaturalKind < active 64.70/17.60 isLNatKind < active 64.70/17.60 U21 < active 64.70/17.60 U31 < active 64.70/17.60 U41 < active 64.70/17.60 U51 < active 64.70/17.60 U61 < active 64.70/17.60 isPLNatKind < active 64.70/17.60 U71 < active 64.70/17.60 U81 < active 64.70/17.60 U91 < active 64.70/17.60 U101 < active 64.70/17.60 U111 < active 64.70/17.60 U121 < active 64.70/17.60 U131 < active 64.70/17.60 U141 < active 64.70/17.60 U151 < active 64.70/17.60 U161 < active 64.70/17.60 U171 < active 64.70/17.60 U181 < active 64.70/17.60 U191 < active 64.70/17.60 U201 < active 64.70/17.60 U211 < active 64.70/17.60 U221 < active 64.70/17.60 tail < active 64.70/17.60 take < active 64.70/17.60 sel < active 64.70/17.60 active < top 64.70/17.60 U62 < proper 64.70/17.60 isPLNat < proper 64.70/17.60 U72 < proper 64.70/17.60 U82 < proper 64.70/17.60 U92 < proper 64.70/17.60 U11 < proper 64.70/17.60 and < proper 64.70/17.60 isNaturalKind < proper 64.70/17.60 isLNatKind < proper 64.70/17.60 U21 < proper 64.70/17.60 U31 < proper 64.70/17.60 U41 < proper 64.70/17.60 U51 < proper 64.70/17.60 U61 < proper 64.70/17.60 isPLNatKind < proper 64.70/17.60 U71 < proper 64.70/17.60 U81 < proper 64.70/17.60 U91 < proper 64.70/17.60 U101 < proper 64.70/17.60 U111 < proper 64.70/17.60 U121 < proper 64.70/17.60 U131 < proper 64.70/17.60 U141 < proper 64.70/17.60 U151 < proper 64.70/17.60 U161 < proper 64.70/17.60 U171 < proper 64.70/17.60 U181 < proper 64.70/17.60 U191 < proper 64.70/17.60 U201 < proper 64.70/17.60 U211 < proper 64.70/17.60 U221 < proper 64.70/17.60 tail < proper 64.70/17.60 take < proper 64.70/17.60 sel < proper 64.70/17.60 proper < top 64.70/17.60 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (77) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.60 Proved the following rewrite lemma: 64.70/17.60 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.60 64.70/17.60 Induction Base: 64.70/17.60 U62(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.60 64.70/17.60 Induction Step: 64.70/17.60 U62(gen_tt:mark:nil:0':ok3_0(+(1, +(n121842_0, 1)))) ->_R^Omega(1) 64.70/17.60 mark(U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0)))) ->_IH 64.70/17.60 mark(*4_0) 64.70/17.60 64.70/17.60 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (78) 64.70/17.60 Obligation: 64.70/17.60 TRS: 64.70/17.60 Rules: 64.70/17.60 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.60 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.60 active(U103(tt)) -> mark(tt) 64.70/17.60 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.60 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.60 active(U112(tt)) -> mark(tt) 64.70/17.60 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.60 active(U122(tt)) -> mark(tt) 64.70/17.60 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.60 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.60 active(U133(tt)) -> mark(tt) 64.70/17.60 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.60 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.60 active(U143(tt)) -> mark(tt) 64.70/17.60 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.60 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.60 active(U153(tt)) -> mark(tt) 64.70/17.60 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.60 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.60 active(U181(tt, Y)) -> mark(Y) 64.70/17.60 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.60 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.60 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.60 active(U21(tt, X)) -> mark(X) 64.70/17.60 active(U211(tt, XS)) -> mark(XS) 64.70/17.60 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.60 active(U31(tt, N)) -> mark(N) 64.70/17.60 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.60 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.60 active(U43(tt)) -> mark(tt) 64.70/17.60 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.60 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.60 active(U53(tt)) -> mark(tt) 64.70/17.60 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.60 active(U62(tt)) -> mark(tt) 64.70/17.60 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.60 active(U72(tt)) -> mark(tt) 64.70/17.60 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.60 active(U82(tt)) -> mark(tt) 64.70/17.60 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.60 active(U92(tt)) -> mark(tt) 64.70/17.60 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(and(tt, X)) -> mark(X) 64.70/17.60 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.60 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.60 active(isLNat(nil)) -> mark(tt) 64.70/17.60 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.60 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.60 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNatKind(nil)) -> mark(tt) 64.70/17.60 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isNatural(0')) -> mark(tt) 64.70/17.60 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.60 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.60 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isNaturalKind(0')) -> mark(tt) 64.70/17.60 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.60 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.60 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.60 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.60 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.60 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.60 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.60 active(U103(X)) -> U103(active(X)) 64.70/17.60 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.60 active(snd(X)) -> snd(active(X)) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.60 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.60 active(U112(X)) -> U112(active(X)) 64.70/17.60 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.60 active(U122(X)) -> U122(active(X)) 64.70/17.60 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.60 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.60 active(U133(X)) -> U133(active(X)) 64.70/17.60 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.60 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.60 active(U143(X)) -> U143(active(X)) 64.70/17.60 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.60 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.60 active(U153(X)) -> U153(active(X)) 64.70/17.60 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.60 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.60 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.60 active(s(X)) -> s(active(X)) 64.70/17.60 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.60 active(head(X)) -> head(active(X)) 64.70/17.60 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.60 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.60 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.60 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.60 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.60 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.60 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.60 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.60 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.60 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.60 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.60 active(fst(X)) -> fst(active(X)) 64.70/17.60 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.60 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.60 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.60 active(U43(X)) -> U43(active(X)) 64.70/17.60 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.60 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.60 active(U53(X)) -> U53(active(X)) 64.70/17.60 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.60 active(U62(X)) -> U62(active(X)) 64.70/17.60 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.60 active(U72(X)) -> U72(active(X)) 64.70/17.60 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.60 active(U82(X)) -> U82(active(X)) 64.70/17.60 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.60 active(U92(X)) -> U92(active(X)) 64.70/17.60 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.60 active(tail(X)) -> tail(active(X)) 64.70/17.60 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.60 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.60 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.60 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.60 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.60 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.60 U103(mark(X)) -> mark(U103(X)) 64.70/17.60 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.60 snd(mark(X)) -> mark(snd(X)) 64.70/17.60 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.60 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.60 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.60 U112(mark(X)) -> mark(U112(X)) 64.70/17.60 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.60 U122(mark(X)) -> mark(U122(X)) 64.70/17.60 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.60 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.60 U133(mark(X)) -> mark(U133(X)) 64.70/17.60 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.60 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.60 U143(mark(X)) -> mark(U143(X)) 64.70/17.60 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.60 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.60 U153(mark(X)) -> mark(U153(X)) 64.70/17.60 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.60 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.60 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.60 s(mark(X)) -> mark(s(X)) 64.70/17.60 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.60 head(mark(X)) -> mark(head(X)) 64.70/17.60 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.60 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.60 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.60 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.60 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.60 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.60 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.60 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.60 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.60 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.60 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.60 fst(mark(X)) -> mark(fst(X)) 64.70/17.60 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.60 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.60 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.60 U43(mark(X)) -> mark(U43(X)) 64.70/17.60 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.60 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.60 U53(mark(X)) -> mark(U53(X)) 64.70/17.60 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.60 U62(mark(X)) -> mark(U62(X)) 64.70/17.60 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.60 U72(mark(X)) -> mark(U72(X)) 64.70/17.60 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.60 U82(mark(X)) -> mark(U82(X)) 64.70/17.60 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.60 U92(mark(X)) -> mark(U92(X)) 64.70/17.60 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.60 tail(mark(X)) -> mark(tail(X)) 64.70/17.60 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.60 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.60 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.60 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.60 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(tt) -> ok(tt) 64.70/17.60 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.60 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.60 proper(U103(X)) -> U103(proper(X)) 64.70/17.60 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.60 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(snd(X)) -> snd(proper(X)) 64.70/17.60 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.60 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.60 proper(U112(X)) -> U112(proper(X)) 64.70/17.60 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.60 proper(U122(X)) -> U122(proper(X)) 64.70/17.60 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.60 proper(U133(X)) -> U133(proper(X)) 64.70/17.60 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.60 proper(U143(X)) -> U143(proper(X)) 64.70/17.60 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.60 proper(U153(X)) -> U153(proper(X)) 64.70/17.60 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.60 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.60 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.60 proper(s(X)) -> s(proper(X)) 64.70/17.60 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(head(X)) -> head(proper(X)) 64.70/17.60 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.60 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.60 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.60 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.60 proper(nil) -> ok(nil) 64.70/17.60 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.60 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.60 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.60 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.60 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(fst(X)) -> fst(proper(X)) 64.70/17.60 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.60 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.60 proper(U43(X)) -> U43(proper(X)) 64.70/17.60 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.60 proper(U53(X)) -> U53(proper(X)) 64.70/17.60 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.60 proper(U62(X)) -> U62(proper(X)) 64.70/17.60 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.60 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.60 proper(U72(X)) -> U72(proper(X)) 64.70/17.60 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.60 proper(U82(X)) -> U82(proper(X)) 64.70/17.60 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.60 proper(U92(X)) -> U92(proper(X)) 64.70/17.60 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.60 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.60 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.60 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.60 proper(tail(X)) -> tail(proper(X)) 64.70/17.60 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.60 proper(0') -> ok(0') 64.70/17.60 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.60 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.60 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.60 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.60 U103(ok(X)) -> ok(U103(X)) 64.70/17.60 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.60 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.60 snd(ok(X)) -> ok(snd(X)) 64.70/17.60 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.60 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.60 U112(ok(X)) -> ok(U112(X)) 64.70/17.60 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.60 U122(ok(X)) -> ok(U122(X)) 64.70/17.60 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.60 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.60 U133(ok(X)) -> ok(U133(X)) 64.70/17.60 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.60 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.60 U143(ok(X)) -> ok(U143(X)) 64.70/17.60 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.60 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.60 U153(ok(X)) -> ok(U153(X)) 64.70/17.60 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.60 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.60 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.60 s(ok(X)) -> ok(s(X)) 64.70/17.60 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.60 head(ok(X)) -> ok(head(X)) 64.70/17.60 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.60 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.60 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.60 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.60 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.60 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.60 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.60 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.60 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.60 fst(ok(X)) -> ok(fst(X)) 64.70/17.60 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.60 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.60 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.60 U43(ok(X)) -> ok(U43(X)) 64.70/17.60 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.60 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.60 U53(ok(X)) -> ok(U53(X)) 64.70/17.60 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.60 U62(ok(X)) -> ok(U62(X)) 64.70/17.60 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.60 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.60 U72(ok(X)) -> ok(U72(X)) 64.70/17.60 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.60 U82(ok(X)) -> ok(U82(X)) 64.70/17.60 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.60 U92(ok(X)) -> ok(U92(X)) 64.70/17.60 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.60 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.60 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.60 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.60 tail(ok(X)) -> ok(tail(X)) 64.70/17.60 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.60 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.60 top(mark(X)) -> top(proper(X)) 64.70/17.60 top(ok(X)) -> top(active(X)) 64.70/17.60 64.70/17.60 Types: 64.70/17.60 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tt :: tt:mark:nil:0':ok 64.70/17.60 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 nil :: tt:mark:nil:0':ok 64.70/17.60 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 0' :: tt:mark:nil:0':ok 64.70/17.60 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 top :: tt:mark:nil:0':ok -> top 64.70/17.60 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.60 hole_top2_0 :: top 64.70/17.60 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.60 64.70/17.60 64.70/17.60 Lemmas: 64.70/17.60 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.60 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.60 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.60 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.60 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.60 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.60 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.60 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.60 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.60 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.60 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.60 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.60 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.60 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.60 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.60 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.60 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.60 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.60 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.60 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.60 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.60 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.60 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.60 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.60 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.60 64.70/17.60 64.70/17.60 Generator Equations: 64.70/17.60 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.60 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.60 64.70/17.60 64.70/17.60 The following defined symbols remain to be analysed: 64.70/17.60 isPLNat, active, U72, U82, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.60 64.70/17.60 They will be analysed ascendingly in the following order: 64.70/17.60 isPLNat < active 64.70/17.60 U72 < active 64.70/17.60 U82 < active 64.70/17.60 U92 < active 64.70/17.60 U11 < active 64.70/17.60 and < active 64.70/17.60 isNaturalKind < active 64.70/17.60 isLNatKind < active 64.70/17.60 U21 < active 64.70/17.60 U31 < active 64.70/17.60 U41 < active 64.70/17.60 U51 < active 64.70/17.60 U61 < active 64.70/17.60 isPLNatKind < active 64.70/17.60 U71 < active 64.70/17.60 U81 < active 64.70/17.60 U91 < active 64.70/17.60 U101 < active 64.70/17.60 U111 < active 64.70/17.60 U121 < active 64.70/17.60 U131 < active 64.70/17.60 U141 < active 64.70/17.60 U151 < active 64.70/17.60 U161 < active 64.70/17.60 U171 < active 64.70/17.60 U181 < active 64.70/17.60 U191 < active 64.70/17.60 U201 < active 64.70/17.60 U211 < active 64.70/17.60 U221 < active 64.70/17.60 tail < active 64.70/17.60 take < active 64.70/17.60 sel < active 64.70/17.60 active < top 64.70/17.60 isPLNat < proper 64.70/17.60 U72 < proper 64.70/17.60 U82 < proper 64.70/17.60 U92 < proper 64.70/17.60 U11 < proper 64.70/17.60 and < proper 64.70/17.60 isNaturalKind < proper 64.70/17.60 isLNatKind < proper 64.70/17.60 U21 < proper 64.70/17.60 U31 < proper 64.70/17.60 U41 < proper 64.70/17.60 U51 < proper 64.70/17.60 U61 < proper 64.70/17.60 isPLNatKind < proper 64.70/17.60 U71 < proper 64.70/17.60 U81 < proper 64.70/17.60 U91 < proper 64.70/17.60 U101 < proper 64.70/17.60 U111 < proper 64.70/17.60 U121 < proper 64.70/17.60 U131 < proper 64.70/17.60 U141 < proper 64.70/17.60 U151 < proper 64.70/17.60 U161 < proper 64.70/17.60 U171 < proper 64.70/17.60 U181 < proper 64.70/17.60 U191 < proper 64.70/17.60 U201 < proper 64.70/17.60 U211 < proper 64.70/17.60 U221 < proper 64.70/17.60 tail < proper 64.70/17.60 take < proper 64.70/17.60 sel < proper 64.70/17.60 proper < top 64.70/17.60 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (79) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.60 Proved the following rewrite lemma: 64.70/17.60 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.60 64.70/17.60 Induction Base: 64.70/17.60 U72(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.60 64.70/17.60 Induction Step: 64.70/17.60 U72(gen_tt:mark:nil:0':ok3_0(+(1, +(n126142_0, 1)))) ->_R^Omega(1) 64.70/17.60 mark(U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0)))) ->_IH 64.70/17.60 mark(*4_0) 64.70/17.60 64.70/17.60 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (80) 64.70/17.60 Obligation: 64.70/17.60 TRS: 64.70/17.60 Rules: 64.70/17.60 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.60 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.60 active(U103(tt)) -> mark(tt) 64.70/17.60 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.60 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.60 active(U112(tt)) -> mark(tt) 64.70/17.60 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.60 active(U122(tt)) -> mark(tt) 64.70/17.60 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.60 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.60 active(U133(tt)) -> mark(tt) 64.70/17.60 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.60 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.60 active(U143(tt)) -> mark(tt) 64.70/17.60 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.60 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.60 active(U153(tt)) -> mark(tt) 64.70/17.60 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.60 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.60 active(U181(tt, Y)) -> mark(Y) 64.70/17.60 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.60 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.60 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.60 active(U21(tt, X)) -> mark(X) 64.70/17.60 active(U211(tt, XS)) -> mark(XS) 64.70/17.60 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.60 active(U31(tt, N)) -> mark(N) 64.70/17.60 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.60 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.60 active(U43(tt)) -> mark(tt) 64.70/17.60 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.60 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.60 active(U53(tt)) -> mark(tt) 64.70/17.60 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.60 active(U62(tt)) -> mark(tt) 64.70/17.60 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.60 active(U72(tt)) -> mark(tt) 64.70/17.60 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.60 active(U82(tt)) -> mark(tt) 64.70/17.60 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.60 active(U92(tt)) -> mark(tt) 64.70/17.60 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(and(tt, X)) -> mark(X) 64.70/17.60 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.60 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.60 active(isLNat(nil)) -> mark(tt) 64.70/17.60 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.60 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.60 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNatKind(nil)) -> mark(tt) 64.70/17.60 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isNatural(0')) -> mark(tt) 64.70/17.60 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.60 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.60 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isNaturalKind(0')) -> mark(tt) 64.70/17.60 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.60 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.60 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.60 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.60 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.60 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.60 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.60 active(U103(X)) -> U103(active(X)) 64.70/17.60 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.60 active(snd(X)) -> snd(active(X)) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.60 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.60 active(U112(X)) -> U112(active(X)) 64.70/17.60 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.60 active(U122(X)) -> U122(active(X)) 64.70/17.60 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.60 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.60 active(U133(X)) -> U133(active(X)) 64.70/17.60 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.60 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.60 active(U143(X)) -> U143(active(X)) 64.70/17.60 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.60 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.60 active(U153(X)) -> U153(active(X)) 64.70/17.60 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.60 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.60 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.60 active(s(X)) -> s(active(X)) 64.70/17.60 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.60 active(head(X)) -> head(active(X)) 64.70/17.60 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.60 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.60 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.60 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.60 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.60 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.60 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.60 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.60 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.60 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.60 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.60 active(fst(X)) -> fst(active(X)) 64.70/17.60 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.60 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.60 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.60 active(U43(X)) -> U43(active(X)) 64.70/17.60 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.60 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.60 active(U53(X)) -> U53(active(X)) 64.70/17.60 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.60 active(U62(X)) -> U62(active(X)) 64.70/17.60 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.60 active(U72(X)) -> U72(active(X)) 64.70/17.60 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.60 active(U82(X)) -> U82(active(X)) 64.70/17.60 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.60 active(U92(X)) -> U92(active(X)) 64.70/17.60 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.60 active(tail(X)) -> tail(active(X)) 64.70/17.60 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.60 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.60 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.60 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.60 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.60 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.60 U103(mark(X)) -> mark(U103(X)) 64.70/17.60 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.60 snd(mark(X)) -> mark(snd(X)) 64.70/17.60 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.60 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.60 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.60 U112(mark(X)) -> mark(U112(X)) 64.70/17.60 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.60 U122(mark(X)) -> mark(U122(X)) 64.70/17.60 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.60 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.60 U133(mark(X)) -> mark(U133(X)) 64.70/17.60 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.60 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.60 U143(mark(X)) -> mark(U143(X)) 64.70/17.60 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.60 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.60 U153(mark(X)) -> mark(U153(X)) 64.70/17.60 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.60 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.60 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.60 s(mark(X)) -> mark(s(X)) 64.70/17.60 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.60 head(mark(X)) -> mark(head(X)) 64.70/17.60 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.60 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.60 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.60 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.60 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.60 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.60 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.60 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.60 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.60 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.60 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.60 fst(mark(X)) -> mark(fst(X)) 64.70/17.60 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.60 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.60 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.60 U43(mark(X)) -> mark(U43(X)) 64.70/17.60 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.60 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.60 U53(mark(X)) -> mark(U53(X)) 64.70/17.60 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.60 U62(mark(X)) -> mark(U62(X)) 64.70/17.60 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.60 U72(mark(X)) -> mark(U72(X)) 64.70/17.60 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.60 U82(mark(X)) -> mark(U82(X)) 64.70/17.60 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.60 U92(mark(X)) -> mark(U92(X)) 64.70/17.60 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.60 tail(mark(X)) -> mark(tail(X)) 64.70/17.60 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.60 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.60 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.60 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.60 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(tt) -> ok(tt) 64.70/17.60 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.60 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.60 proper(U103(X)) -> U103(proper(X)) 64.70/17.60 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.60 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(snd(X)) -> snd(proper(X)) 64.70/17.60 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.60 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.60 proper(U112(X)) -> U112(proper(X)) 64.70/17.60 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.60 proper(U122(X)) -> U122(proper(X)) 64.70/17.60 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.60 proper(U133(X)) -> U133(proper(X)) 64.70/17.60 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.60 proper(U143(X)) -> U143(proper(X)) 64.70/17.60 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.60 proper(U153(X)) -> U153(proper(X)) 64.70/17.60 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.60 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.60 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.60 proper(s(X)) -> s(proper(X)) 64.70/17.60 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(head(X)) -> head(proper(X)) 64.70/17.60 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.60 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.60 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.60 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.60 proper(nil) -> ok(nil) 64.70/17.60 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.60 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.60 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.60 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.60 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(fst(X)) -> fst(proper(X)) 64.70/17.60 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.60 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.60 proper(U43(X)) -> U43(proper(X)) 64.70/17.60 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.60 proper(U53(X)) -> U53(proper(X)) 64.70/17.60 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.60 proper(U62(X)) -> U62(proper(X)) 64.70/17.60 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.60 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.60 proper(U72(X)) -> U72(proper(X)) 64.70/17.60 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.60 proper(U82(X)) -> U82(proper(X)) 64.70/17.60 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.60 proper(U92(X)) -> U92(proper(X)) 64.70/17.60 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.60 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.60 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.60 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.60 proper(tail(X)) -> tail(proper(X)) 64.70/17.60 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.60 proper(0') -> ok(0') 64.70/17.60 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.60 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.60 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.60 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.60 U103(ok(X)) -> ok(U103(X)) 64.70/17.60 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.60 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.60 snd(ok(X)) -> ok(snd(X)) 64.70/17.60 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.60 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.60 U112(ok(X)) -> ok(U112(X)) 64.70/17.60 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.60 U122(ok(X)) -> ok(U122(X)) 64.70/17.60 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.60 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.60 U133(ok(X)) -> ok(U133(X)) 64.70/17.60 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.60 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.60 U143(ok(X)) -> ok(U143(X)) 64.70/17.60 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.60 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.60 U153(ok(X)) -> ok(U153(X)) 64.70/17.60 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.60 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.60 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.60 s(ok(X)) -> ok(s(X)) 64.70/17.60 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.60 head(ok(X)) -> ok(head(X)) 64.70/17.60 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.60 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.60 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.60 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.60 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.60 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.60 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.60 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.60 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.60 fst(ok(X)) -> ok(fst(X)) 64.70/17.60 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.60 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.60 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.60 U43(ok(X)) -> ok(U43(X)) 64.70/17.60 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.60 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.60 U53(ok(X)) -> ok(U53(X)) 64.70/17.60 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.60 U62(ok(X)) -> ok(U62(X)) 64.70/17.60 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.60 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.60 U72(ok(X)) -> ok(U72(X)) 64.70/17.60 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.60 U82(ok(X)) -> ok(U82(X)) 64.70/17.60 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.60 U92(ok(X)) -> ok(U92(X)) 64.70/17.60 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.60 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.60 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.60 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.60 tail(ok(X)) -> ok(tail(X)) 64.70/17.60 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.60 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.60 top(mark(X)) -> top(proper(X)) 64.70/17.60 top(ok(X)) -> top(active(X)) 64.70/17.60 64.70/17.60 Types: 64.70/17.60 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tt :: tt:mark:nil:0':ok 64.70/17.60 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 nil :: tt:mark:nil:0':ok 64.70/17.60 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 0' :: tt:mark:nil:0':ok 64.70/17.60 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 top :: tt:mark:nil:0':ok -> top 64.70/17.60 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.60 hole_top2_0 :: top 64.70/17.60 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.60 64.70/17.60 64.70/17.60 Lemmas: 64.70/17.60 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.60 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.60 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.60 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.60 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.60 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.60 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.60 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.60 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.60 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.60 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.60 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.60 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.60 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.60 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.60 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.60 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.60 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.60 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.60 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.60 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.60 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.60 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.60 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.60 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.60 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.60 64.70/17.60 64.70/17.60 Generator Equations: 64.70/17.60 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.60 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.60 64.70/17.60 64.70/17.60 The following defined symbols remain to be analysed: 64.70/17.60 U82, active, U92, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.60 64.70/17.60 They will be analysed ascendingly in the following order: 64.70/17.60 U82 < active 64.70/17.60 U92 < active 64.70/17.60 U11 < active 64.70/17.60 and < active 64.70/17.60 isNaturalKind < active 64.70/17.60 isLNatKind < active 64.70/17.60 U21 < active 64.70/17.60 U31 < active 64.70/17.60 U41 < active 64.70/17.60 U51 < active 64.70/17.60 U61 < active 64.70/17.60 isPLNatKind < active 64.70/17.60 U71 < active 64.70/17.60 U81 < active 64.70/17.60 U91 < active 64.70/17.60 U101 < active 64.70/17.60 U111 < active 64.70/17.60 U121 < active 64.70/17.60 U131 < active 64.70/17.60 U141 < active 64.70/17.60 U151 < active 64.70/17.60 U161 < active 64.70/17.60 U171 < active 64.70/17.60 U181 < active 64.70/17.60 U191 < active 64.70/17.60 U201 < active 64.70/17.60 U211 < active 64.70/17.60 U221 < active 64.70/17.60 tail < active 64.70/17.60 take < active 64.70/17.60 sel < active 64.70/17.60 active < top 64.70/17.60 U82 < proper 64.70/17.60 U92 < proper 64.70/17.60 U11 < proper 64.70/17.60 and < proper 64.70/17.60 isNaturalKind < proper 64.70/17.60 isLNatKind < proper 64.70/17.60 U21 < proper 64.70/17.60 U31 < proper 64.70/17.60 U41 < proper 64.70/17.60 U51 < proper 64.70/17.60 U61 < proper 64.70/17.60 isPLNatKind < proper 64.70/17.60 U71 < proper 64.70/17.60 U81 < proper 64.70/17.60 U91 < proper 64.70/17.60 U101 < proper 64.70/17.60 U111 < proper 64.70/17.60 U121 < proper 64.70/17.60 U131 < proper 64.70/17.60 U141 < proper 64.70/17.60 U151 < proper 64.70/17.60 U161 < proper 64.70/17.60 U171 < proper 64.70/17.60 U181 < proper 64.70/17.60 U191 < proper 64.70/17.60 U201 < proper 64.70/17.60 U211 < proper 64.70/17.60 U221 < proper 64.70/17.60 tail < proper 64.70/17.60 take < proper 64.70/17.60 sel < proper 64.70/17.60 proper < top 64.70/17.60 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (81) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.60 Proved the following rewrite lemma: 64.70/17.60 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.70/17.60 64.70/17.60 Induction Base: 64.70/17.60 U82(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.60 64.70/17.60 Induction Step: 64.70/17.60 U82(gen_tt:mark:nil:0':ok3_0(+(1, +(n130442_0, 1)))) ->_R^Omega(1) 64.70/17.60 mark(U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0)))) ->_IH 64.70/17.60 mark(*4_0) 64.70/17.60 64.70/17.60 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (82) 64.70/17.60 Obligation: 64.70/17.60 TRS: 64.70/17.60 Rules: 64.70/17.60 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.60 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.60 active(U103(tt)) -> mark(tt) 64.70/17.60 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.60 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.60 active(U112(tt)) -> mark(tt) 64.70/17.60 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.60 active(U122(tt)) -> mark(tt) 64.70/17.60 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.60 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.60 active(U133(tt)) -> mark(tt) 64.70/17.60 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.60 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.60 active(U143(tt)) -> mark(tt) 64.70/17.60 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.60 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.60 active(U153(tt)) -> mark(tt) 64.70/17.60 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.60 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.60 active(U181(tt, Y)) -> mark(Y) 64.70/17.60 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.60 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.60 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.60 active(U21(tt, X)) -> mark(X) 64.70/17.60 active(U211(tt, XS)) -> mark(XS) 64.70/17.60 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.60 active(U31(tt, N)) -> mark(N) 64.70/17.60 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.60 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.60 active(U43(tt)) -> mark(tt) 64.70/17.60 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.60 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.60 active(U53(tt)) -> mark(tt) 64.70/17.60 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.60 active(U62(tt)) -> mark(tt) 64.70/17.60 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.60 active(U72(tt)) -> mark(tt) 64.70/17.60 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.60 active(U82(tt)) -> mark(tt) 64.70/17.60 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.60 active(U92(tt)) -> mark(tt) 64.70/17.60 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(and(tt, X)) -> mark(X) 64.70/17.60 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.60 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.60 active(isLNat(nil)) -> mark(tt) 64.70/17.60 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.60 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.60 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNatKind(nil)) -> mark(tt) 64.70/17.60 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isNatural(0')) -> mark(tt) 64.70/17.60 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.60 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.60 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isNaturalKind(0')) -> mark(tt) 64.70/17.60 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.60 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.60 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.60 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.60 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.60 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.60 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.60 active(U103(X)) -> U103(active(X)) 64.70/17.60 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.60 active(snd(X)) -> snd(active(X)) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.60 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.60 active(U112(X)) -> U112(active(X)) 64.70/17.60 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.60 active(U122(X)) -> U122(active(X)) 64.70/17.60 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.60 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.60 active(U133(X)) -> U133(active(X)) 64.70/17.60 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.60 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.60 active(U143(X)) -> U143(active(X)) 64.70/17.60 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.60 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.60 active(U153(X)) -> U153(active(X)) 64.70/17.60 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.60 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.60 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.60 active(s(X)) -> s(active(X)) 64.70/17.60 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.60 active(head(X)) -> head(active(X)) 64.70/17.60 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.60 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.60 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.60 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.60 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.60 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.60 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.60 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.60 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.60 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.60 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.60 active(fst(X)) -> fst(active(X)) 64.70/17.60 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.60 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.60 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.60 active(U43(X)) -> U43(active(X)) 64.70/17.60 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.60 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.60 active(U53(X)) -> U53(active(X)) 64.70/17.60 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.60 active(U62(X)) -> U62(active(X)) 64.70/17.60 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.60 active(U72(X)) -> U72(active(X)) 64.70/17.60 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.60 active(U82(X)) -> U82(active(X)) 64.70/17.60 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.60 active(U92(X)) -> U92(active(X)) 64.70/17.60 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.60 active(tail(X)) -> tail(active(X)) 64.70/17.60 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.60 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.60 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.60 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.60 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.60 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.60 U103(mark(X)) -> mark(U103(X)) 64.70/17.60 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.60 snd(mark(X)) -> mark(snd(X)) 64.70/17.60 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.60 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.60 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.60 U112(mark(X)) -> mark(U112(X)) 64.70/17.60 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.60 U122(mark(X)) -> mark(U122(X)) 64.70/17.60 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.60 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.60 U133(mark(X)) -> mark(U133(X)) 64.70/17.60 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.60 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.60 U143(mark(X)) -> mark(U143(X)) 64.70/17.60 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.60 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.60 U153(mark(X)) -> mark(U153(X)) 64.70/17.60 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.60 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.60 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.60 s(mark(X)) -> mark(s(X)) 64.70/17.60 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.60 head(mark(X)) -> mark(head(X)) 64.70/17.60 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.60 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.60 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.60 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.60 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.60 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.60 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.60 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.60 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.60 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.60 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.60 fst(mark(X)) -> mark(fst(X)) 64.70/17.60 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.60 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.60 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.60 U43(mark(X)) -> mark(U43(X)) 64.70/17.60 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.60 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.60 U53(mark(X)) -> mark(U53(X)) 64.70/17.60 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.60 U62(mark(X)) -> mark(U62(X)) 64.70/17.60 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.60 U72(mark(X)) -> mark(U72(X)) 64.70/17.60 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.60 U82(mark(X)) -> mark(U82(X)) 64.70/17.60 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.60 U92(mark(X)) -> mark(U92(X)) 64.70/17.60 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.60 tail(mark(X)) -> mark(tail(X)) 64.70/17.60 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.60 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.60 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.60 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.60 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(tt) -> ok(tt) 64.70/17.60 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.60 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.60 proper(U103(X)) -> U103(proper(X)) 64.70/17.60 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.60 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(snd(X)) -> snd(proper(X)) 64.70/17.60 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.60 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.60 proper(U112(X)) -> U112(proper(X)) 64.70/17.60 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.60 proper(U122(X)) -> U122(proper(X)) 64.70/17.60 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.60 proper(U133(X)) -> U133(proper(X)) 64.70/17.60 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.60 proper(U143(X)) -> U143(proper(X)) 64.70/17.60 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.60 proper(U153(X)) -> U153(proper(X)) 64.70/17.60 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.60 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.60 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.60 proper(s(X)) -> s(proper(X)) 64.70/17.60 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(head(X)) -> head(proper(X)) 64.70/17.60 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.60 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.60 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.60 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.60 proper(nil) -> ok(nil) 64.70/17.60 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.60 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.60 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.60 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.60 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(fst(X)) -> fst(proper(X)) 64.70/17.60 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.60 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.60 proper(U43(X)) -> U43(proper(X)) 64.70/17.60 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.60 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.60 proper(U53(X)) -> U53(proper(X)) 64.70/17.60 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.60 proper(U62(X)) -> U62(proper(X)) 64.70/17.60 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.60 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.60 proper(U72(X)) -> U72(proper(X)) 64.70/17.60 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.60 proper(U82(X)) -> U82(proper(X)) 64.70/17.60 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.60 proper(U92(X)) -> U92(proper(X)) 64.70/17.60 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.60 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.60 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.60 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.60 proper(tail(X)) -> tail(proper(X)) 64.70/17.60 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.60 proper(0') -> ok(0') 64.70/17.60 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.60 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.60 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.60 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.60 U103(ok(X)) -> ok(U103(X)) 64.70/17.60 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.60 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.60 snd(ok(X)) -> ok(snd(X)) 64.70/17.60 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.60 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.60 U112(ok(X)) -> ok(U112(X)) 64.70/17.60 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.60 U122(ok(X)) -> ok(U122(X)) 64.70/17.60 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.60 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.60 U133(ok(X)) -> ok(U133(X)) 64.70/17.60 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.60 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.60 U143(ok(X)) -> ok(U143(X)) 64.70/17.60 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.60 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.60 U153(ok(X)) -> ok(U153(X)) 64.70/17.60 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.60 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.60 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.60 s(ok(X)) -> ok(s(X)) 64.70/17.60 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.60 head(ok(X)) -> ok(head(X)) 64.70/17.60 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.60 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.60 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.60 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.60 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.60 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.60 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.60 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.60 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.60 fst(ok(X)) -> ok(fst(X)) 64.70/17.60 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.60 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.60 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.60 U43(ok(X)) -> ok(U43(X)) 64.70/17.60 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.60 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.60 U53(ok(X)) -> ok(U53(X)) 64.70/17.60 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.60 U62(ok(X)) -> ok(U62(X)) 64.70/17.60 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.60 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.60 U72(ok(X)) -> ok(U72(X)) 64.70/17.60 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.60 U82(ok(X)) -> ok(U82(X)) 64.70/17.60 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.60 U92(ok(X)) -> ok(U92(X)) 64.70/17.60 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.60 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.60 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.60 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.60 tail(ok(X)) -> ok(tail(X)) 64.70/17.60 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.60 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.60 top(mark(X)) -> top(proper(X)) 64.70/17.60 top(ok(X)) -> top(active(X)) 64.70/17.60 64.70/17.60 Types: 64.70/17.60 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tt :: tt:mark:nil:0':ok 64.70/17.60 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 nil :: tt:mark:nil:0':ok 64.70/17.60 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 0' :: tt:mark:nil:0':ok 64.70/17.60 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.60 top :: tt:mark:nil:0':ok -> top 64.70/17.60 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.60 hole_top2_0 :: top 64.70/17.60 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.60 64.70/17.60 64.70/17.60 Lemmas: 64.70/17.60 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.60 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.60 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.60 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.60 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.60 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.60 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.60 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.60 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.60 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.60 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.60 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.60 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.60 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.60 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.60 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.60 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.60 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.60 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.60 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.60 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.60 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.60 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.60 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.60 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.60 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.60 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.70/17.60 64.70/17.60 64.70/17.60 Generator Equations: 64.70/17.60 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.60 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.60 64.70/17.60 64.70/17.60 The following defined symbols remain to be analysed: 64.70/17.60 U92, active, U11, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.60 64.70/17.60 They will be analysed ascendingly in the following order: 64.70/17.60 U92 < active 64.70/17.60 U11 < active 64.70/17.60 and < active 64.70/17.60 isNaturalKind < active 64.70/17.60 isLNatKind < active 64.70/17.60 U21 < active 64.70/17.60 U31 < active 64.70/17.60 U41 < active 64.70/17.60 U51 < active 64.70/17.60 U61 < active 64.70/17.60 isPLNatKind < active 64.70/17.60 U71 < active 64.70/17.60 U81 < active 64.70/17.60 U91 < active 64.70/17.60 U101 < active 64.70/17.60 U111 < active 64.70/17.60 U121 < active 64.70/17.60 U131 < active 64.70/17.60 U141 < active 64.70/17.60 U151 < active 64.70/17.60 U161 < active 64.70/17.60 U171 < active 64.70/17.60 U181 < active 64.70/17.60 U191 < active 64.70/17.60 U201 < active 64.70/17.60 U211 < active 64.70/17.60 U221 < active 64.70/17.60 tail < active 64.70/17.60 take < active 64.70/17.60 sel < active 64.70/17.60 active < top 64.70/17.60 U92 < proper 64.70/17.60 U11 < proper 64.70/17.60 and < proper 64.70/17.60 isNaturalKind < proper 64.70/17.60 isLNatKind < proper 64.70/17.60 U21 < proper 64.70/17.60 U31 < proper 64.70/17.60 U41 < proper 64.70/17.60 U51 < proper 64.70/17.60 U61 < proper 64.70/17.60 isPLNatKind < proper 64.70/17.60 U71 < proper 64.70/17.60 U81 < proper 64.70/17.60 U91 < proper 64.70/17.60 U101 < proper 64.70/17.60 U111 < proper 64.70/17.60 U121 < proper 64.70/17.60 U131 < proper 64.70/17.60 U141 < proper 64.70/17.60 U151 < proper 64.70/17.60 U161 < proper 64.70/17.60 U171 < proper 64.70/17.60 U181 < proper 64.70/17.60 U191 < proper 64.70/17.60 U201 < proper 64.70/17.60 U211 < proper 64.70/17.60 U221 < proper 64.70/17.60 tail < proper 64.70/17.60 take < proper 64.70/17.60 sel < proper 64.70/17.60 proper < top 64.70/17.60 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (83) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.60 Proved the following rewrite lemma: 64.70/17.60 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.70/17.60 64.70/17.60 Induction Base: 64.70/17.60 U92(gen_tt:mark:nil:0':ok3_0(+(1, 0))) 64.70/17.60 64.70/17.60 Induction Step: 64.70/17.60 U92(gen_tt:mark:nil:0':ok3_0(+(1, +(n134843_0, 1)))) ->_R^Omega(1) 64.70/17.60 mark(U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0)))) ->_IH 64.70/17.60 mark(*4_0) 64.70/17.60 64.70/17.60 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.60 ---------------------------------------- 64.70/17.60 64.70/17.60 (84) 64.70/17.60 Obligation: 64.70/17.60 TRS: 64.70/17.60 Rules: 64.70/17.60 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.60 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.60 active(U103(tt)) -> mark(tt) 64.70/17.60 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.60 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.60 active(U112(tt)) -> mark(tt) 64.70/17.60 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.60 active(U122(tt)) -> mark(tt) 64.70/17.60 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.60 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.60 active(U133(tt)) -> mark(tt) 64.70/17.60 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.60 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.60 active(U143(tt)) -> mark(tt) 64.70/17.60 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.60 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.60 active(U153(tt)) -> mark(tt) 64.70/17.60 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.60 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.60 active(U181(tt, Y)) -> mark(Y) 64.70/17.60 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.60 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.60 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.60 active(U21(tt, X)) -> mark(X) 64.70/17.60 active(U211(tt, XS)) -> mark(XS) 64.70/17.60 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.60 active(U31(tt, N)) -> mark(N) 64.70/17.60 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.60 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.60 active(U43(tt)) -> mark(tt) 64.70/17.60 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.60 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.60 active(U53(tt)) -> mark(tt) 64.70/17.60 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.60 active(U62(tt)) -> mark(tt) 64.70/17.60 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.60 active(U72(tt)) -> mark(tt) 64.70/17.60 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.60 active(U82(tt)) -> mark(tt) 64.70/17.60 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.60 active(U92(tt)) -> mark(tt) 64.70/17.60 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(and(tt, X)) -> mark(X) 64.70/17.60 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.60 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.60 active(isLNat(nil)) -> mark(tt) 64.70/17.60 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.60 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.60 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.60 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isLNatKind(nil)) -> mark(tt) 64.70/17.60 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.60 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isNatural(0')) -> mark(tt) 64.70/17.60 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.60 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.60 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isNaturalKind(0')) -> mark(tt) 64.70/17.60 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.60 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.60 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.60 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.60 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.60 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.60 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.60 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.60 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.60 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.60 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.60 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.60 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.60 active(U103(X)) -> U103(active(X)) 64.70/17.60 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.60 active(snd(X)) -> snd(active(X)) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.60 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.60 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.60 active(U112(X)) -> U112(active(X)) 64.70/17.60 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.60 active(U122(X)) -> U122(active(X)) 64.70/17.60 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.60 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.60 active(U133(X)) -> U133(active(X)) 64.70/17.61 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.61 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.61 active(U143(X)) -> U143(active(X)) 64.70/17.61 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.61 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.61 active(U153(X)) -> U153(active(X)) 64.70/17.61 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.61 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.61 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.61 active(s(X)) -> s(active(X)) 64.70/17.61 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.61 active(head(X)) -> head(active(X)) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.61 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.61 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.61 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.61 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.61 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.61 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.61 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.61 active(fst(X)) -> fst(active(X)) 64.70/17.61 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.61 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.61 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.61 active(U43(X)) -> U43(active(X)) 64.70/17.61 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.61 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.61 active(U53(X)) -> U53(active(X)) 64.70/17.61 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.61 active(U62(X)) -> U62(active(X)) 64.70/17.61 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.61 active(U72(X)) -> U72(active(X)) 64.70/17.61 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.61 active(U82(X)) -> U82(active(X)) 64.70/17.61 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.61 active(U92(X)) -> U92(active(X)) 64.70/17.61 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.61 active(tail(X)) -> tail(active(X)) 64.70/17.61 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.61 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.61 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.61 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.61 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.61 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.61 U103(mark(X)) -> mark(U103(X)) 64.70/17.61 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.61 snd(mark(X)) -> mark(snd(X)) 64.70/17.61 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.61 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.61 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.61 U112(mark(X)) -> mark(U112(X)) 64.70/17.61 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.61 U122(mark(X)) -> mark(U122(X)) 64.70/17.61 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.61 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.61 U133(mark(X)) -> mark(U133(X)) 64.70/17.61 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.61 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.61 U143(mark(X)) -> mark(U143(X)) 64.70/17.61 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.61 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.61 U153(mark(X)) -> mark(U153(X)) 64.70/17.61 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.61 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.61 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.61 s(mark(X)) -> mark(s(X)) 64.70/17.61 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.61 head(mark(X)) -> mark(head(X)) 64.70/17.61 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.61 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.61 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.61 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.61 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.61 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.61 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.61 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.61 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.61 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.61 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.61 fst(mark(X)) -> mark(fst(X)) 64.70/17.61 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.61 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.61 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.61 U43(mark(X)) -> mark(U43(X)) 64.70/17.61 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.61 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.61 U53(mark(X)) -> mark(U53(X)) 64.70/17.61 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.61 U62(mark(X)) -> mark(U62(X)) 64.70/17.61 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.61 U72(mark(X)) -> mark(U72(X)) 64.70/17.61 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.61 U82(mark(X)) -> mark(U82(X)) 64.70/17.61 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.61 U92(mark(X)) -> mark(U92(X)) 64.70/17.61 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.61 tail(mark(X)) -> mark(tail(X)) 64.70/17.61 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.61 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.61 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.61 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.61 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(tt) -> ok(tt) 64.70/17.61 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.61 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.61 proper(U103(X)) -> U103(proper(X)) 64.70/17.61 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.61 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(snd(X)) -> snd(proper(X)) 64.70/17.61 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.61 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.61 proper(U112(X)) -> U112(proper(X)) 64.70/17.61 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.61 proper(U122(X)) -> U122(proper(X)) 64.70/17.61 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.61 proper(U133(X)) -> U133(proper(X)) 64.70/17.61 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.61 proper(U143(X)) -> U143(proper(X)) 64.70/17.61 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.61 proper(U153(X)) -> U153(proper(X)) 64.70/17.61 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.61 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.61 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.61 proper(s(X)) -> s(proper(X)) 64.70/17.61 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(head(X)) -> head(proper(X)) 64.70/17.61 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.61 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.61 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.61 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.61 proper(nil) -> ok(nil) 64.70/17.61 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.61 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.61 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.61 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.61 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(fst(X)) -> fst(proper(X)) 64.70/17.61 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.61 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.61 proper(U43(X)) -> U43(proper(X)) 64.70/17.61 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.61 proper(U53(X)) -> U53(proper(X)) 64.70/17.61 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.61 proper(U62(X)) -> U62(proper(X)) 64.70/17.61 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.61 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.61 proper(U72(X)) -> U72(proper(X)) 64.70/17.61 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.61 proper(U82(X)) -> U82(proper(X)) 64.70/17.61 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.61 proper(U92(X)) -> U92(proper(X)) 64.70/17.61 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.61 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.61 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.61 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.61 proper(tail(X)) -> tail(proper(X)) 64.70/17.61 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.61 proper(0') -> ok(0') 64.70/17.61 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.61 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.61 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.61 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.61 U103(ok(X)) -> ok(U103(X)) 64.70/17.61 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.61 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.61 snd(ok(X)) -> ok(snd(X)) 64.70/17.61 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.61 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.61 U112(ok(X)) -> ok(U112(X)) 64.70/17.61 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.61 U122(ok(X)) -> ok(U122(X)) 64.70/17.61 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.61 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.61 U133(ok(X)) -> ok(U133(X)) 64.70/17.61 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.61 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.61 U143(ok(X)) -> ok(U143(X)) 64.70/17.61 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.61 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.61 U153(ok(X)) -> ok(U153(X)) 64.70/17.61 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.61 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.61 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.61 s(ok(X)) -> ok(s(X)) 64.70/17.61 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.61 head(ok(X)) -> ok(head(X)) 64.70/17.61 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.61 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.61 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.61 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.61 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.61 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.61 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.61 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.61 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.61 fst(ok(X)) -> ok(fst(X)) 64.70/17.61 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.61 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.61 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.61 U43(ok(X)) -> ok(U43(X)) 64.70/17.61 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.61 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.61 U53(ok(X)) -> ok(U53(X)) 64.70/17.61 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.61 U62(ok(X)) -> ok(U62(X)) 64.70/17.61 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.61 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.61 U72(ok(X)) -> ok(U72(X)) 64.70/17.61 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.61 U82(ok(X)) -> ok(U82(X)) 64.70/17.61 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.61 U92(ok(X)) -> ok(U92(X)) 64.70/17.61 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.61 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.61 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.61 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.61 tail(ok(X)) -> ok(tail(X)) 64.70/17.61 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.61 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.61 top(mark(X)) -> top(proper(X)) 64.70/17.61 top(ok(X)) -> top(active(X)) 64.70/17.61 64.70/17.61 Types: 64.70/17.61 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tt :: tt:mark:nil:0':ok 64.70/17.61 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 nil :: tt:mark:nil:0':ok 64.70/17.61 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 0' :: tt:mark:nil:0':ok 64.70/17.61 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 top :: tt:mark:nil:0':ok -> top 64.70/17.61 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.61 hole_top2_0 :: top 64.70/17.61 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.61 64.70/17.61 64.70/17.61 Lemmas: 64.70/17.61 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.61 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.61 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.61 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.61 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.61 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.61 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.61 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.61 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.61 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.61 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.61 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.61 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.61 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.61 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.61 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.61 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.61 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.61 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.61 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.61 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.61 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.61 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.61 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.61 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.61 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.61 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.70/17.61 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.70/17.61 64.70/17.61 64.70/17.61 Generator Equations: 64.70/17.61 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.61 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.61 64.70/17.61 64.70/17.61 The following defined symbols remain to be analysed: 64.70/17.61 U11, active, and, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.61 64.70/17.61 They will be analysed ascendingly in the following order: 64.70/17.61 U11 < active 64.70/17.61 and < active 64.70/17.61 isNaturalKind < active 64.70/17.61 isLNatKind < active 64.70/17.61 U21 < active 64.70/17.61 U31 < active 64.70/17.61 U41 < active 64.70/17.61 U51 < active 64.70/17.61 U61 < active 64.70/17.61 isPLNatKind < active 64.70/17.61 U71 < active 64.70/17.61 U81 < active 64.70/17.61 U91 < active 64.70/17.61 U101 < active 64.70/17.61 U111 < active 64.70/17.61 U121 < active 64.70/17.61 U131 < active 64.70/17.61 U141 < active 64.70/17.61 U151 < active 64.70/17.61 U161 < active 64.70/17.61 U171 < active 64.70/17.61 U181 < active 64.70/17.61 U191 < active 64.70/17.61 U201 < active 64.70/17.61 U211 < active 64.70/17.61 U221 < active 64.70/17.61 tail < active 64.70/17.61 take < active 64.70/17.61 sel < active 64.70/17.61 active < top 64.70/17.61 U11 < proper 64.70/17.61 and < proper 64.70/17.61 isNaturalKind < proper 64.70/17.61 isLNatKind < proper 64.70/17.61 U21 < proper 64.70/17.61 U31 < proper 64.70/17.61 U41 < proper 64.70/17.61 U51 < proper 64.70/17.61 U61 < proper 64.70/17.61 isPLNatKind < proper 64.70/17.61 U71 < proper 64.70/17.61 U81 < proper 64.70/17.61 U91 < proper 64.70/17.61 U101 < proper 64.70/17.61 U111 < proper 64.70/17.61 U121 < proper 64.70/17.61 U131 < proper 64.70/17.61 U141 < proper 64.70/17.61 U151 < proper 64.70/17.61 U161 < proper 64.70/17.61 U171 < proper 64.70/17.61 U181 < proper 64.70/17.61 U191 < proper 64.70/17.61 U201 < proper 64.70/17.61 U211 < proper 64.70/17.61 U221 < proper 64.70/17.61 tail < proper 64.70/17.61 take < proper 64.70/17.61 sel < proper 64.70/17.61 proper < top 64.70/17.61 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (85) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.61 Proved the following rewrite lemma: 64.70/17.61 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.70/17.61 64.70/17.61 Induction Base: 64.70/17.61 U11(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) 64.70/17.61 64.70/17.61 Induction Step: 64.70/17.61 U11(gen_tt:mark:nil:0':ok3_0(+(1, +(n139345_0, 1))), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) ->_R^Omega(1) 64.70/17.61 mark(U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c))) ->_IH 64.70/17.61 mark(*4_0) 64.70/17.61 64.70/17.61 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (86) 64.70/17.61 Obligation: 64.70/17.61 TRS: 64.70/17.61 Rules: 64.70/17.61 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.61 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.61 active(U103(tt)) -> mark(tt) 64.70/17.61 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.61 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.61 active(U112(tt)) -> mark(tt) 64.70/17.61 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.61 active(U122(tt)) -> mark(tt) 64.70/17.61 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.61 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.61 active(U133(tt)) -> mark(tt) 64.70/17.61 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.61 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.61 active(U143(tt)) -> mark(tt) 64.70/17.61 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.61 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.61 active(U153(tt)) -> mark(tt) 64.70/17.61 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.61 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.61 active(U181(tt, Y)) -> mark(Y) 64.70/17.61 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.61 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.61 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.61 active(U21(tt, X)) -> mark(X) 64.70/17.61 active(U211(tt, XS)) -> mark(XS) 64.70/17.61 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.61 active(U31(tt, N)) -> mark(N) 64.70/17.61 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.61 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.61 active(U43(tt)) -> mark(tt) 64.70/17.61 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.61 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.61 active(U53(tt)) -> mark(tt) 64.70/17.61 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.61 active(U62(tt)) -> mark(tt) 64.70/17.61 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.61 active(U72(tt)) -> mark(tt) 64.70/17.61 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.61 active(U82(tt)) -> mark(tt) 64.70/17.61 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.61 active(U92(tt)) -> mark(tt) 64.70/17.61 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(and(tt, X)) -> mark(X) 64.70/17.61 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.61 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.61 active(isLNat(nil)) -> mark(tt) 64.70/17.61 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.61 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.61 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.61 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.61 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNatKind(nil)) -> mark(tt) 64.70/17.61 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.61 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.61 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.61 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.61 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isNatural(0')) -> mark(tt) 64.70/17.61 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.61 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.61 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isNaturalKind(0')) -> mark(tt) 64.70/17.61 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.61 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.61 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.61 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.61 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.61 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.61 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.61 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.61 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.61 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.61 active(U103(X)) -> U103(active(X)) 64.70/17.61 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.61 active(snd(X)) -> snd(active(X)) 64.70/17.61 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.61 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.61 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.61 active(U112(X)) -> U112(active(X)) 64.70/17.61 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.61 active(U122(X)) -> U122(active(X)) 64.70/17.61 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.61 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.61 active(U133(X)) -> U133(active(X)) 64.70/17.61 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.61 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.61 active(U143(X)) -> U143(active(X)) 64.70/17.61 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.61 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.61 active(U153(X)) -> U153(active(X)) 64.70/17.61 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.61 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.61 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.61 active(s(X)) -> s(active(X)) 64.70/17.61 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.61 active(head(X)) -> head(active(X)) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.61 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.61 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.61 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.61 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.61 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.61 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.61 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.61 active(fst(X)) -> fst(active(X)) 64.70/17.61 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.61 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.61 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.61 active(U43(X)) -> U43(active(X)) 64.70/17.61 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.61 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.61 active(U53(X)) -> U53(active(X)) 64.70/17.61 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.61 active(U62(X)) -> U62(active(X)) 64.70/17.61 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.61 active(U72(X)) -> U72(active(X)) 64.70/17.61 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.61 active(U82(X)) -> U82(active(X)) 64.70/17.61 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.61 active(U92(X)) -> U92(active(X)) 64.70/17.61 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.61 active(tail(X)) -> tail(active(X)) 64.70/17.61 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.61 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.61 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.61 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.61 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.61 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.61 U103(mark(X)) -> mark(U103(X)) 64.70/17.61 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.61 snd(mark(X)) -> mark(snd(X)) 64.70/17.61 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.61 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.61 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.61 U112(mark(X)) -> mark(U112(X)) 64.70/17.61 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.61 U122(mark(X)) -> mark(U122(X)) 64.70/17.61 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.61 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.61 U133(mark(X)) -> mark(U133(X)) 64.70/17.61 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.61 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.61 U143(mark(X)) -> mark(U143(X)) 64.70/17.61 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.61 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.61 U153(mark(X)) -> mark(U153(X)) 64.70/17.61 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.61 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.61 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.61 s(mark(X)) -> mark(s(X)) 64.70/17.61 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.61 head(mark(X)) -> mark(head(X)) 64.70/17.61 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.61 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.61 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.61 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.61 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.61 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.61 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.61 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.61 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.61 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.61 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.61 fst(mark(X)) -> mark(fst(X)) 64.70/17.61 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.61 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.61 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.61 U43(mark(X)) -> mark(U43(X)) 64.70/17.61 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.61 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.61 U53(mark(X)) -> mark(U53(X)) 64.70/17.61 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.61 U62(mark(X)) -> mark(U62(X)) 64.70/17.61 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.61 U72(mark(X)) -> mark(U72(X)) 64.70/17.61 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.61 U82(mark(X)) -> mark(U82(X)) 64.70/17.61 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.61 U92(mark(X)) -> mark(U92(X)) 64.70/17.61 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.61 tail(mark(X)) -> mark(tail(X)) 64.70/17.61 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.61 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.61 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.61 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.61 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(tt) -> ok(tt) 64.70/17.61 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.61 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.61 proper(U103(X)) -> U103(proper(X)) 64.70/17.61 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.61 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(snd(X)) -> snd(proper(X)) 64.70/17.61 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.61 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.61 proper(U112(X)) -> U112(proper(X)) 64.70/17.61 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.61 proper(U122(X)) -> U122(proper(X)) 64.70/17.61 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.61 proper(U133(X)) -> U133(proper(X)) 64.70/17.61 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.61 proper(U143(X)) -> U143(proper(X)) 64.70/17.61 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.61 proper(U153(X)) -> U153(proper(X)) 64.70/17.61 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.61 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.61 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.61 proper(s(X)) -> s(proper(X)) 64.70/17.61 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(head(X)) -> head(proper(X)) 64.70/17.61 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.61 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.61 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.61 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.61 proper(nil) -> ok(nil) 64.70/17.61 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.61 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.61 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.61 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.61 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(fst(X)) -> fst(proper(X)) 64.70/17.61 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.61 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.61 proper(U43(X)) -> U43(proper(X)) 64.70/17.61 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.61 proper(U53(X)) -> U53(proper(X)) 64.70/17.61 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.61 proper(U62(X)) -> U62(proper(X)) 64.70/17.61 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.61 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.61 proper(U72(X)) -> U72(proper(X)) 64.70/17.61 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.61 proper(U82(X)) -> U82(proper(X)) 64.70/17.61 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.61 proper(U92(X)) -> U92(proper(X)) 64.70/17.61 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.61 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.61 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.61 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.61 proper(tail(X)) -> tail(proper(X)) 64.70/17.61 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.61 proper(0') -> ok(0') 64.70/17.61 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.61 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.61 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.61 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.61 U103(ok(X)) -> ok(U103(X)) 64.70/17.61 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.61 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.61 snd(ok(X)) -> ok(snd(X)) 64.70/17.61 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.61 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.61 U112(ok(X)) -> ok(U112(X)) 64.70/17.61 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.61 U122(ok(X)) -> ok(U122(X)) 64.70/17.61 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.61 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.61 U133(ok(X)) -> ok(U133(X)) 64.70/17.61 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.61 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.61 U143(ok(X)) -> ok(U143(X)) 64.70/17.61 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.61 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.61 U153(ok(X)) -> ok(U153(X)) 64.70/17.61 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.61 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.61 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.61 s(ok(X)) -> ok(s(X)) 64.70/17.61 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.61 head(ok(X)) -> ok(head(X)) 64.70/17.61 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.61 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.61 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.61 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.61 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.61 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.61 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.61 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.61 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.61 fst(ok(X)) -> ok(fst(X)) 64.70/17.61 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.61 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.61 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.61 U43(ok(X)) -> ok(U43(X)) 64.70/17.61 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.61 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.61 U53(ok(X)) -> ok(U53(X)) 64.70/17.61 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.61 U62(ok(X)) -> ok(U62(X)) 64.70/17.61 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.61 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.61 U72(ok(X)) -> ok(U72(X)) 64.70/17.61 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.61 U82(ok(X)) -> ok(U82(X)) 64.70/17.61 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.61 U92(ok(X)) -> ok(U92(X)) 64.70/17.61 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.61 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.61 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.61 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.61 tail(ok(X)) -> ok(tail(X)) 64.70/17.61 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.61 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.61 top(mark(X)) -> top(proper(X)) 64.70/17.61 top(ok(X)) -> top(active(X)) 64.70/17.61 64.70/17.61 Types: 64.70/17.61 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tt :: tt:mark:nil:0':ok 64.70/17.61 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 nil :: tt:mark:nil:0':ok 64.70/17.61 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 0' :: tt:mark:nil:0':ok 64.70/17.61 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 top :: tt:mark:nil:0':ok -> top 64.70/17.61 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.61 hole_top2_0 :: top 64.70/17.61 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.61 64.70/17.61 64.70/17.61 Lemmas: 64.70/17.61 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.61 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.61 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.61 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.61 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.61 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.61 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.61 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.61 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.61 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.61 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.61 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.61 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.61 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.61 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.61 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.61 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.61 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.61 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.61 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.61 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.61 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.61 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.61 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.61 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.61 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.61 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.70/17.61 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.70/17.61 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.70/17.61 64.70/17.61 64.70/17.61 Generator Equations: 64.70/17.61 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.61 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.61 64.70/17.61 64.70/17.61 The following defined symbols remain to be analysed: 64.70/17.61 and, active, isNaturalKind, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.61 64.70/17.61 They will be analysed ascendingly in the following order: 64.70/17.61 and < active 64.70/17.61 isNaturalKind < active 64.70/17.61 isLNatKind < active 64.70/17.61 U21 < active 64.70/17.61 U31 < active 64.70/17.61 U41 < active 64.70/17.61 U51 < active 64.70/17.61 U61 < active 64.70/17.61 isPLNatKind < active 64.70/17.61 U71 < active 64.70/17.61 U81 < active 64.70/17.61 U91 < active 64.70/17.61 U101 < active 64.70/17.61 U111 < active 64.70/17.61 U121 < active 64.70/17.61 U131 < active 64.70/17.61 U141 < active 64.70/17.61 U151 < active 64.70/17.61 U161 < active 64.70/17.61 U171 < active 64.70/17.61 U181 < active 64.70/17.61 U191 < active 64.70/17.61 U201 < active 64.70/17.61 U211 < active 64.70/17.61 U221 < active 64.70/17.61 tail < active 64.70/17.61 take < active 64.70/17.61 sel < active 64.70/17.61 active < top 64.70/17.61 and < proper 64.70/17.61 isNaturalKind < proper 64.70/17.61 isLNatKind < proper 64.70/17.61 U21 < proper 64.70/17.61 U31 < proper 64.70/17.61 U41 < proper 64.70/17.61 U51 < proper 64.70/17.61 U61 < proper 64.70/17.61 isPLNatKind < proper 64.70/17.61 U71 < proper 64.70/17.61 U81 < proper 64.70/17.61 U91 < proper 64.70/17.61 U101 < proper 64.70/17.61 U111 < proper 64.70/17.61 U121 < proper 64.70/17.61 U131 < proper 64.70/17.61 U141 < proper 64.70/17.61 U151 < proper 64.70/17.61 U161 < proper 64.70/17.61 U171 < proper 64.70/17.61 U181 < proper 64.70/17.61 U191 < proper 64.70/17.61 U201 < proper 64.70/17.61 U211 < proper 64.70/17.61 U221 < proper 64.70/17.61 tail < proper 64.70/17.61 take < proper 64.70/17.61 sel < proper 64.70/17.61 proper < top 64.70/17.61 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (87) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.61 Proved the following rewrite lemma: 64.70/17.61 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.70/17.61 64.70/17.61 Induction Base: 64.70/17.61 and(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.61 64.70/17.61 Induction Step: 64.70/17.61 and(gen_tt:mark:nil:0':ok3_0(+(1, +(n158460_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.61 mark(and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.61 mark(*4_0) 64.70/17.61 64.70/17.61 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (88) 64.70/17.61 Obligation: 64.70/17.61 TRS: 64.70/17.61 Rules: 64.70/17.61 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.61 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.61 active(U103(tt)) -> mark(tt) 64.70/17.61 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.61 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.61 active(U112(tt)) -> mark(tt) 64.70/17.61 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.61 active(U122(tt)) -> mark(tt) 64.70/17.61 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.61 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.61 active(U133(tt)) -> mark(tt) 64.70/17.61 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.61 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.61 active(U143(tt)) -> mark(tt) 64.70/17.61 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.61 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.61 active(U153(tt)) -> mark(tt) 64.70/17.61 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.61 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.61 active(U181(tt, Y)) -> mark(Y) 64.70/17.61 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.61 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.61 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.61 active(U21(tt, X)) -> mark(X) 64.70/17.61 active(U211(tt, XS)) -> mark(XS) 64.70/17.61 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.61 active(U31(tt, N)) -> mark(N) 64.70/17.61 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.61 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.61 active(U43(tt)) -> mark(tt) 64.70/17.61 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.61 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.61 active(U53(tt)) -> mark(tt) 64.70/17.61 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.61 active(U62(tt)) -> mark(tt) 64.70/17.61 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.61 active(U72(tt)) -> mark(tt) 64.70/17.61 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.61 active(U82(tt)) -> mark(tt) 64.70/17.61 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.61 active(U92(tt)) -> mark(tt) 64.70/17.61 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(and(tt, X)) -> mark(X) 64.70/17.61 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.61 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.61 active(isLNat(nil)) -> mark(tt) 64.70/17.61 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.61 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.61 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.61 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.61 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNatKind(nil)) -> mark(tt) 64.70/17.61 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.61 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.61 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.61 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.61 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isNatural(0')) -> mark(tt) 64.70/17.61 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.61 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.61 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isNaturalKind(0')) -> mark(tt) 64.70/17.61 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.61 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.61 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.61 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.61 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.61 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.61 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.61 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.61 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.61 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.61 active(U103(X)) -> U103(active(X)) 64.70/17.61 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.61 active(snd(X)) -> snd(active(X)) 64.70/17.61 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.61 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.61 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.61 active(U112(X)) -> U112(active(X)) 64.70/17.61 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.61 active(U122(X)) -> U122(active(X)) 64.70/17.61 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.61 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.61 active(U133(X)) -> U133(active(X)) 64.70/17.61 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.61 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.61 active(U143(X)) -> U143(active(X)) 64.70/17.61 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.61 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.61 active(U153(X)) -> U153(active(X)) 64.70/17.61 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.61 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.61 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.61 active(s(X)) -> s(active(X)) 64.70/17.61 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.61 active(head(X)) -> head(active(X)) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.61 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.61 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.61 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.61 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.61 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.61 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.61 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.61 active(fst(X)) -> fst(active(X)) 64.70/17.61 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.61 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.61 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.61 active(U43(X)) -> U43(active(X)) 64.70/17.61 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.61 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.61 active(U53(X)) -> U53(active(X)) 64.70/17.61 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.61 active(U62(X)) -> U62(active(X)) 64.70/17.61 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.61 active(U72(X)) -> U72(active(X)) 64.70/17.61 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.61 active(U82(X)) -> U82(active(X)) 64.70/17.61 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.61 active(U92(X)) -> U92(active(X)) 64.70/17.61 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.61 active(tail(X)) -> tail(active(X)) 64.70/17.61 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.61 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.61 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.61 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.61 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.61 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.61 U103(mark(X)) -> mark(U103(X)) 64.70/17.61 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.61 snd(mark(X)) -> mark(snd(X)) 64.70/17.61 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.61 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.61 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.61 U112(mark(X)) -> mark(U112(X)) 64.70/17.61 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.61 U122(mark(X)) -> mark(U122(X)) 64.70/17.61 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.61 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.61 U133(mark(X)) -> mark(U133(X)) 64.70/17.61 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.61 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.61 U143(mark(X)) -> mark(U143(X)) 64.70/17.61 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.61 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.61 U153(mark(X)) -> mark(U153(X)) 64.70/17.61 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.61 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.61 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.61 s(mark(X)) -> mark(s(X)) 64.70/17.61 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.61 head(mark(X)) -> mark(head(X)) 64.70/17.61 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.61 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.61 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.61 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.61 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.61 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.61 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.61 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.61 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.61 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.61 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.61 fst(mark(X)) -> mark(fst(X)) 64.70/17.61 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.61 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.61 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.61 U43(mark(X)) -> mark(U43(X)) 64.70/17.61 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.61 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.61 U53(mark(X)) -> mark(U53(X)) 64.70/17.61 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.61 U62(mark(X)) -> mark(U62(X)) 64.70/17.61 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.61 U72(mark(X)) -> mark(U72(X)) 64.70/17.61 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.61 U82(mark(X)) -> mark(U82(X)) 64.70/17.61 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.61 U92(mark(X)) -> mark(U92(X)) 64.70/17.61 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.61 tail(mark(X)) -> mark(tail(X)) 64.70/17.61 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.61 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.61 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.61 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.61 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(tt) -> ok(tt) 64.70/17.61 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.61 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.61 proper(U103(X)) -> U103(proper(X)) 64.70/17.61 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.61 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(snd(X)) -> snd(proper(X)) 64.70/17.61 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.61 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.61 proper(U112(X)) -> U112(proper(X)) 64.70/17.61 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.61 proper(U122(X)) -> U122(proper(X)) 64.70/17.61 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.61 proper(U133(X)) -> U133(proper(X)) 64.70/17.61 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.61 proper(U143(X)) -> U143(proper(X)) 64.70/17.61 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.61 proper(U153(X)) -> U153(proper(X)) 64.70/17.61 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.61 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.61 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.61 proper(s(X)) -> s(proper(X)) 64.70/17.61 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(head(X)) -> head(proper(X)) 64.70/17.61 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.61 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.61 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.61 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.61 proper(nil) -> ok(nil) 64.70/17.61 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.61 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.61 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.61 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.61 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(fst(X)) -> fst(proper(X)) 64.70/17.61 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.61 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.61 proper(U43(X)) -> U43(proper(X)) 64.70/17.61 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.61 proper(U53(X)) -> U53(proper(X)) 64.70/17.61 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.61 proper(U62(X)) -> U62(proper(X)) 64.70/17.61 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.61 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.61 proper(U72(X)) -> U72(proper(X)) 64.70/17.61 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.61 proper(U82(X)) -> U82(proper(X)) 64.70/17.61 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.61 proper(U92(X)) -> U92(proper(X)) 64.70/17.61 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.61 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.61 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.61 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.61 proper(tail(X)) -> tail(proper(X)) 64.70/17.61 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.61 proper(0') -> ok(0') 64.70/17.61 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.61 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.61 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.61 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.61 U103(ok(X)) -> ok(U103(X)) 64.70/17.61 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.61 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.61 snd(ok(X)) -> ok(snd(X)) 64.70/17.61 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.61 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.61 U112(ok(X)) -> ok(U112(X)) 64.70/17.61 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.61 U122(ok(X)) -> ok(U122(X)) 64.70/17.61 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.61 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.61 U133(ok(X)) -> ok(U133(X)) 64.70/17.61 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.61 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.61 U143(ok(X)) -> ok(U143(X)) 64.70/17.61 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.61 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.61 U153(ok(X)) -> ok(U153(X)) 64.70/17.61 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.61 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.61 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.61 s(ok(X)) -> ok(s(X)) 64.70/17.61 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.61 head(ok(X)) -> ok(head(X)) 64.70/17.61 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.61 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.61 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.61 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.61 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.61 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.61 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.61 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.61 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.61 fst(ok(X)) -> ok(fst(X)) 64.70/17.61 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.61 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.61 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.61 U43(ok(X)) -> ok(U43(X)) 64.70/17.61 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.61 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.61 U53(ok(X)) -> ok(U53(X)) 64.70/17.61 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.61 U62(ok(X)) -> ok(U62(X)) 64.70/17.61 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.61 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.61 U72(ok(X)) -> ok(U72(X)) 64.70/17.61 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.61 U82(ok(X)) -> ok(U82(X)) 64.70/17.61 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.61 U92(ok(X)) -> ok(U92(X)) 64.70/17.61 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.61 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.61 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.61 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.61 tail(ok(X)) -> ok(tail(X)) 64.70/17.61 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.61 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.61 top(mark(X)) -> top(proper(X)) 64.70/17.61 top(ok(X)) -> top(active(X)) 64.70/17.61 64.70/17.61 Types: 64.70/17.61 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tt :: tt:mark:nil:0':ok 64.70/17.61 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 nil :: tt:mark:nil:0':ok 64.70/17.61 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 0' :: tt:mark:nil:0':ok 64.70/17.61 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 top :: tt:mark:nil:0':ok -> top 64.70/17.61 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.61 hole_top2_0 :: top 64.70/17.61 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.61 64.70/17.61 64.70/17.61 Lemmas: 64.70/17.61 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.61 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.61 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.61 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.61 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.61 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.61 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.61 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.61 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.61 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.61 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.61 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.61 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.61 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.61 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.61 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.61 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.61 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.61 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.61 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.61 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.61 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.61 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.61 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.61 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.61 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.61 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.70/17.61 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.70/17.61 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.70/17.61 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.70/17.61 64.70/17.61 64.70/17.61 Generator Equations: 64.70/17.61 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.61 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.61 64.70/17.61 64.70/17.61 The following defined symbols remain to be analysed: 64.70/17.61 isNaturalKind, active, isLNatKind, U21, U31, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.61 64.70/17.61 They will be analysed ascendingly in the following order: 64.70/17.61 isNaturalKind < active 64.70/17.61 isLNatKind < active 64.70/17.61 U21 < active 64.70/17.61 U31 < active 64.70/17.61 U41 < active 64.70/17.61 U51 < active 64.70/17.61 U61 < active 64.70/17.61 isPLNatKind < active 64.70/17.61 U71 < active 64.70/17.61 U81 < active 64.70/17.61 U91 < active 64.70/17.61 U101 < active 64.70/17.61 U111 < active 64.70/17.61 U121 < active 64.70/17.61 U131 < active 64.70/17.61 U141 < active 64.70/17.61 U151 < active 64.70/17.61 U161 < active 64.70/17.61 U171 < active 64.70/17.61 U181 < active 64.70/17.61 U191 < active 64.70/17.61 U201 < active 64.70/17.61 U211 < active 64.70/17.61 U221 < active 64.70/17.61 tail < active 64.70/17.61 take < active 64.70/17.61 sel < active 64.70/17.61 active < top 64.70/17.61 isNaturalKind < proper 64.70/17.61 isLNatKind < proper 64.70/17.61 U21 < proper 64.70/17.61 U31 < proper 64.70/17.61 U41 < proper 64.70/17.61 U51 < proper 64.70/17.61 U61 < proper 64.70/17.61 isPLNatKind < proper 64.70/17.61 U71 < proper 64.70/17.61 U81 < proper 64.70/17.61 U91 < proper 64.70/17.61 U101 < proper 64.70/17.61 U111 < proper 64.70/17.61 U121 < proper 64.70/17.61 U131 < proper 64.70/17.61 U141 < proper 64.70/17.61 U151 < proper 64.70/17.61 U161 < proper 64.70/17.61 U171 < proper 64.70/17.61 U181 < proper 64.70/17.61 U191 < proper 64.70/17.61 U201 < proper 64.70/17.61 U211 < proper 64.70/17.61 U221 < proper 64.70/17.61 tail < proper 64.70/17.61 take < proper 64.70/17.61 sel < proper 64.70/17.61 proper < top 64.70/17.61 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (89) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.61 Proved the following rewrite lemma: 64.70/17.61 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.70/17.61 64.70/17.61 Induction Base: 64.70/17.61 U21(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.61 64.70/17.61 Induction Step: 64.70/17.61 U21(gen_tt:mark:nil:0':ok3_0(+(1, +(n170967_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.61 mark(U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.61 mark(*4_0) 64.70/17.61 64.70/17.61 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (90) 64.70/17.61 Obligation: 64.70/17.61 TRS: 64.70/17.61 Rules: 64.70/17.61 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.61 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.61 active(U103(tt)) -> mark(tt) 64.70/17.61 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.61 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.61 active(U112(tt)) -> mark(tt) 64.70/17.61 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.61 active(U122(tt)) -> mark(tt) 64.70/17.61 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.61 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.61 active(U133(tt)) -> mark(tt) 64.70/17.61 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.61 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.61 active(U143(tt)) -> mark(tt) 64.70/17.61 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.61 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.61 active(U153(tt)) -> mark(tt) 64.70/17.61 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.61 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.61 active(U181(tt, Y)) -> mark(Y) 64.70/17.61 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.70/17.61 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.70/17.61 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.70/17.61 active(U21(tt, X)) -> mark(X) 64.70/17.61 active(U211(tt, XS)) -> mark(XS) 64.70/17.61 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.70/17.61 active(U31(tt, N)) -> mark(N) 64.70/17.61 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.70/17.61 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.70/17.61 active(U43(tt)) -> mark(tt) 64.70/17.61 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.70/17.61 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.70/17.61 active(U53(tt)) -> mark(tt) 64.70/17.61 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.70/17.61 active(U62(tt)) -> mark(tt) 64.70/17.61 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.70/17.61 active(U72(tt)) -> mark(tt) 64.70/17.61 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.70/17.61 active(U82(tt)) -> mark(tt) 64.70/17.61 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.70/17.61 active(U92(tt)) -> mark(tt) 64.70/17.61 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(and(tt, X)) -> mark(X) 64.70/17.61 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.70/17.61 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.70/17.61 active(isLNat(nil)) -> mark(tt) 64.70/17.61 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.70/17.61 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.70/17.61 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.70/17.61 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.70/17.61 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isLNatKind(nil)) -> mark(tt) 64.70/17.61 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.70/17.61 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.70/17.61 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.70/17.61 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.70/17.61 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isNatural(0')) -> mark(tt) 64.70/17.61 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.70/17.61 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.70/17.61 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isNaturalKind(0')) -> mark(tt) 64.70/17.61 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.70/17.61 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.70/17.61 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.70/17.61 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.70/17.61 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.70/17.61 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.70/17.61 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.70/17.61 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.70/17.61 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.70/17.61 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.70/17.61 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.70/17.61 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.70/17.61 active(U102(X1, X2)) -> U102(active(X1), X2) 64.70/17.61 active(U103(X)) -> U103(active(X)) 64.70/17.61 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.70/17.61 active(snd(X)) -> snd(active(X)) 64.70/17.61 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.70/17.61 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.70/17.61 active(U111(X1, X2)) -> U111(active(X1), X2) 64.70/17.61 active(U112(X)) -> U112(active(X)) 64.70/17.61 active(U121(X1, X2)) -> U121(active(X1), X2) 64.70/17.61 active(U122(X)) -> U122(active(X)) 64.70/17.61 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.70/17.61 active(U132(X1, X2)) -> U132(active(X1), X2) 64.70/17.61 active(U133(X)) -> U133(active(X)) 64.70/17.61 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.70/17.61 active(U142(X1, X2)) -> U142(active(X1), X2) 64.70/17.61 active(U143(X)) -> U143(active(X)) 64.70/17.61 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.70/17.61 active(U152(X1, X2)) -> U152(active(X1), X2) 64.70/17.61 active(U153(X)) -> U153(active(X)) 64.70/17.61 active(U161(X1, X2)) -> U161(active(X1), X2) 64.70/17.61 active(cons(X1, X2)) -> cons(active(X1), X2) 64.70/17.61 active(natsFrom(X)) -> natsFrom(active(X)) 64.70/17.61 active(s(X)) -> s(active(X)) 64.70/17.61 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.70/17.61 active(head(X)) -> head(active(X)) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.70/17.61 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.70/17.61 active(U181(X1, X2)) -> U181(active(X1), X2) 64.70/17.61 active(U191(X1, X2)) -> U191(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(active(X1), X2) 64.70/17.61 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.70/17.61 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.70/17.61 active(U202(X1, X2)) -> U202(active(X1), X2) 64.70/17.61 active(U21(X1, X2)) -> U21(active(X1), X2) 64.70/17.61 active(U211(X1, X2)) -> U211(active(X1), X2) 64.70/17.61 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.70/17.61 active(fst(X)) -> fst(active(X)) 64.70/17.61 active(U31(X1, X2)) -> U31(active(X1), X2) 64.70/17.61 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.70/17.61 active(U42(X1, X2)) -> U42(active(X1), X2) 64.70/17.61 active(U43(X)) -> U43(active(X)) 64.70/17.61 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.70/17.61 active(U52(X1, X2)) -> U52(active(X1), X2) 64.70/17.61 active(U53(X)) -> U53(active(X)) 64.70/17.61 active(U61(X1, X2)) -> U61(active(X1), X2) 64.70/17.61 active(U62(X)) -> U62(active(X)) 64.70/17.61 active(U71(X1, X2)) -> U71(active(X1), X2) 64.70/17.61 active(U72(X)) -> U72(active(X)) 64.70/17.61 active(U81(X1, X2)) -> U81(active(X1), X2) 64.70/17.61 active(U82(X)) -> U82(active(X)) 64.70/17.61 active(U91(X1, X2)) -> U91(active(X1), X2) 64.70/17.61 active(U92(X)) -> U92(active(X)) 64.70/17.61 active(and(X1, X2)) -> and(active(X1), X2) 64.70/17.61 active(tail(X)) -> tail(active(X)) 64.70/17.61 active(take(X1, X2)) -> take(active(X1), X2) 64.70/17.61 active(take(X1, X2)) -> take(X1, active(X2)) 64.70/17.61 active(sel(X1, X2)) -> sel(active(X1), X2) 64.70/17.61 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.70/17.61 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.70/17.61 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.70/17.61 U103(mark(X)) -> mark(U103(X)) 64.70/17.61 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.70/17.61 snd(mark(X)) -> mark(snd(X)) 64.70/17.61 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.70/17.61 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.70/17.61 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.70/17.61 U112(mark(X)) -> mark(U112(X)) 64.70/17.61 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.70/17.61 U122(mark(X)) -> mark(U122(X)) 64.70/17.61 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.70/17.61 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.70/17.61 U133(mark(X)) -> mark(U133(X)) 64.70/17.61 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.70/17.61 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.70/17.61 U143(mark(X)) -> mark(U143(X)) 64.70/17.61 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.70/17.61 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.70/17.61 U153(mark(X)) -> mark(U153(X)) 64.70/17.61 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.70/17.61 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.70/17.61 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.70/17.61 s(mark(X)) -> mark(s(X)) 64.70/17.61 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.70/17.61 head(mark(X)) -> mark(head(X)) 64.70/17.61 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.70/17.61 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.70/17.61 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.70/17.61 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.70/17.61 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.70/17.61 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.70/17.61 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.70/17.61 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.70/17.61 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.70/17.61 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.70/17.61 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.70/17.61 fst(mark(X)) -> mark(fst(X)) 64.70/17.61 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.70/17.61 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.70/17.61 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.70/17.61 U43(mark(X)) -> mark(U43(X)) 64.70/17.61 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.70/17.61 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.70/17.61 U53(mark(X)) -> mark(U53(X)) 64.70/17.61 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.70/17.61 U62(mark(X)) -> mark(U62(X)) 64.70/17.61 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.70/17.61 U72(mark(X)) -> mark(U72(X)) 64.70/17.61 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.70/17.61 U82(mark(X)) -> mark(U82(X)) 64.70/17.61 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.70/17.61 U92(mark(X)) -> mark(U92(X)) 64.70/17.61 and(mark(X1), X2) -> mark(and(X1, X2)) 64.70/17.61 tail(mark(X)) -> mark(tail(X)) 64.70/17.61 take(mark(X1), X2) -> mark(take(X1, X2)) 64.70/17.61 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.70/17.61 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.70/17.61 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.70/17.61 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(tt) -> ok(tt) 64.70/17.61 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.70/17.61 proper(isNatural(X)) -> isNatural(proper(X)) 64.70/17.61 proper(U103(X)) -> U103(proper(X)) 64.70/17.61 proper(isLNat(X)) -> isLNat(proper(X)) 64.70/17.61 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(snd(X)) -> snd(proper(X)) 64.70/17.61 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.70/17.61 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.70/17.61 proper(U112(X)) -> U112(proper(X)) 64.70/17.61 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.70/17.61 proper(U122(X)) -> U122(proper(X)) 64.70/17.61 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.70/17.61 proper(U133(X)) -> U133(proper(X)) 64.70/17.61 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.70/17.61 proper(U143(X)) -> U143(proper(X)) 64.70/17.61 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.70/17.61 proper(U153(X)) -> U153(proper(X)) 64.70/17.61 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.70/17.61 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.70/17.61 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.70/17.61 proper(s(X)) -> s(proper(X)) 64.70/17.61 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(head(X)) -> head(proper(X)) 64.70/17.61 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.70/17.61 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.70/17.61 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.70/17.61 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.70/17.61 proper(nil) -> ok(nil) 64.70/17.61 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.70/17.61 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.70/17.61 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.70/17.61 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.70/17.61 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(fst(X)) -> fst(proper(X)) 64.70/17.61 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.70/17.61 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.70/17.61 proper(U43(X)) -> U43(proper(X)) 64.70/17.61 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.70/17.61 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.70/17.61 proper(U53(X)) -> U53(proper(X)) 64.70/17.61 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.70/17.61 proper(U62(X)) -> U62(proper(X)) 64.70/17.61 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.70/17.61 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.70/17.61 proper(U72(X)) -> U72(proper(X)) 64.70/17.61 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.70/17.61 proper(U82(X)) -> U82(proper(X)) 64.70/17.61 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.70/17.61 proper(U92(X)) -> U92(proper(X)) 64.70/17.61 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.70/17.61 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.70/17.61 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.70/17.61 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.70/17.61 proper(tail(X)) -> tail(proper(X)) 64.70/17.61 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.70/17.61 proper(0') -> ok(0') 64.70/17.61 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.70/17.61 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.70/17.61 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.70/17.61 isNatural(ok(X)) -> ok(isNatural(X)) 64.70/17.61 U103(ok(X)) -> ok(U103(X)) 64.70/17.61 isLNat(ok(X)) -> ok(isLNat(X)) 64.70/17.61 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.70/17.61 snd(ok(X)) -> ok(snd(X)) 64.70/17.61 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.70/17.61 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.70/17.61 U112(ok(X)) -> ok(U112(X)) 64.70/17.61 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.70/17.61 U122(ok(X)) -> ok(U122(X)) 64.70/17.61 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.70/17.61 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.70/17.61 U133(ok(X)) -> ok(U133(X)) 64.70/17.61 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.70/17.61 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.70/17.61 U143(ok(X)) -> ok(U143(X)) 64.70/17.61 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.70/17.61 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.70/17.61 U153(ok(X)) -> ok(U153(X)) 64.70/17.61 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.70/17.61 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.70/17.61 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.70/17.61 s(ok(X)) -> ok(s(X)) 64.70/17.61 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.70/17.61 head(ok(X)) -> ok(head(X)) 64.70/17.61 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.70/17.61 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.70/17.61 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.70/17.61 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.70/17.61 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.70/17.61 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.70/17.61 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.70/17.61 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.70/17.61 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.70/17.61 fst(ok(X)) -> ok(fst(X)) 64.70/17.61 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.70/17.61 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.70/17.61 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.70/17.61 U43(ok(X)) -> ok(U43(X)) 64.70/17.61 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.70/17.61 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.70/17.61 U53(ok(X)) -> ok(U53(X)) 64.70/17.61 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.70/17.61 U62(ok(X)) -> ok(U62(X)) 64.70/17.61 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.70/17.61 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.70/17.61 U72(ok(X)) -> ok(U72(X)) 64.70/17.61 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.70/17.61 U82(ok(X)) -> ok(U82(X)) 64.70/17.61 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.70/17.61 U92(ok(X)) -> ok(U92(X)) 64.70/17.61 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.70/17.61 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.70/17.61 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.70/17.61 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.70/17.61 tail(ok(X)) -> ok(tail(X)) 64.70/17.61 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.70/17.61 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.70/17.61 top(mark(X)) -> top(proper(X)) 64.70/17.61 top(ok(X)) -> top(active(X)) 64.70/17.61 64.70/17.61 Types: 64.70/17.61 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tt :: tt:mark:nil:0':ok 64.70/17.61 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 nil :: tt:mark:nil:0':ok 64.70/17.61 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 0' :: tt:mark:nil:0':ok 64.70/17.61 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.70/17.61 top :: tt:mark:nil:0':ok -> top 64.70/17.61 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.70/17.61 hole_top2_0 :: top 64.70/17.61 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.70/17.61 64.70/17.61 64.70/17.61 Lemmas: 64.70/17.61 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.70/17.61 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.70/17.61 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.70/17.61 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.70/17.61 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.70/17.61 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.70/17.61 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.70/17.61 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.70/17.61 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.70/17.61 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.70/17.61 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.70/17.61 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.70/17.61 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.70/17.61 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.70/17.61 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.70/17.61 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.70/17.61 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.70/17.61 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.70/17.61 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.70/17.61 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.70/17.61 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.70/17.61 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.70/17.61 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.70/17.61 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.70/17.61 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.70/17.61 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.70/17.61 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.70/17.61 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.70/17.61 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.70/17.61 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.70/17.61 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.70/17.61 64.70/17.61 64.70/17.61 Generator Equations: 64.70/17.61 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.70/17.61 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.70/17.61 64.70/17.61 64.70/17.61 The following defined symbols remain to be analysed: 64.70/17.61 U31, active, U41, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.70/17.61 64.70/17.61 They will be analysed ascendingly in the following order: 64.70/17.61 U31 < active 64.70/17.61 U41 < active 64.70/17.61 U51 < active 64.70/17.61 U61 < active 64.70/17.61 isPLNatKind < active 64.70/17.61 U71 < active 64.70/17.61 U81 < active 64.70/17.61 U91 < active 64.70/17.61 U101 < active 64.70/17.61 U111 < active 64.70/17.61 U121 < active 64.70/17.61 U131 < active 64.70/17.61 U141 < active 64.70/17.61 U151 < active 64.70/17.61 U161 < active 64.70/17.61 U171 < active 64.70/17.61 U181 < active 64.70/17.61 U191 < active 64.70/17.61 U201 < active 64.70/17.61 U211 < active 64.70/17.61 U221 < active 64.70/17.61 tail < active 64.70/17.61 take < active 64.70/17.61 sel < active 64.70/17.61 active < top 64.70/17.61 U31 < proper 64.70/17.61 U41 < proper 64.70/17.61 U51 < proper 64.70/17.61 U61 < proper 64.70/17.61 isPLNatKind < proper 64.70/17.61 U71 < proper 64.70/17.61 U81 < proper 64.70/17.61 U91 < proper 64.70/17.61 U101 < proper 64.70/17.61 U111 < proper 64.70/17.61 U121 < proper 64.70/17.61 U131 < proper 64.70/17.61 U141 < proper 64.70/17.61 U151 < proper 64.70/17.61 U161 < proper 64.70/17.61 U171 < proper 64.70/17.61 U181 < proper 64.70/17.61 U191 < proper 64.70/17.61 U201 < proper 64.70/17.61 U211 < proper 64.70/17.61 U221 < proper 64.70/17.61 tail < proper 64.70/17.61 take < proper 64.70/17.61 sel < proper 64.70/17.61 proper < top 64.70/17.61 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (91) RewriteLemmaProof (LOWER BOUND(ID)) 64.70/17.61 Proved the following rewrite lemma: 64.70/17.61 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.70/17.61 64.70/17.61 Induction Base: 64.70/17.61 U31(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.70/17.61 64.70/17.61 Induction Step: 64.70/17.61 U31(gen_tt:mark:nil:0':ok3_0(+(1, +(n183536_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.70/17.61 mark(U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.70/17.61 mark(*4_0) 64.70/17.61 64.70/17.61 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.70/17.61 ---------------------------------------- 64.70/17.61 64.70/17.61 (92) 64.70/17.61 Obligation: 64.70/17.61 TRS: 64.70/17.61 Rules: 64.70/17.61 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.70/17.61 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.70/17.61 active(U103(tt)) -> mark(tt) 64.70/17.61 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.70/17.61 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.70/17.61 active(U112(tt)) -> mark(tt) 64.70/17.61 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.70/17.61 active(U122(tt)) -> mark(tt) 64.70/17.61 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.70/17.61 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.70/17.61 active(U133(tt)) -> mark(tt) 64.70/17.61 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.70/17.61 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.70/17.61 active(U143(tt)) -> mark(tt) 64.70/17.61 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.70/17.61 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.70/17.61 active(U153(tt)) -> mark(tt) 64.70/17.61 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.70/17.61 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.70/17.61 active(U181(tt, Y)) -> mark(Y) 64.70/17.61 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.62 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.62 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.62 active(U21(tt, X)) -> mark(X) 64.85/17.62 active(U211(tt, XS)) -> mark(XS) 64.85/17.62 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.62 active(U31(tt, N)) -> mark(N) 64.85/17.62 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.62 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.62 active(U43(tt)) -> mark(tt) 64.85/17.62 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.62 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.62 active(U53(tt)) -> mark(tt) 64.85/17.62 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.62 active(U62(tt)) -> mark(tt) 64.85/17.62 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.62 active(U72(tt)) -> mark(tt) 64.85/17.62 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.62 active(U82(tt)) -> mark(tt) 64.85/17.62 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.62 active(U92(tt)) -> mark(tt) 64.85/17.62 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(and(tt, X)) -> mark(X) 64.85/17.62 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.62 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.62 active(isLNat(nil)) -> mark(tt) 64.85/17.62 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.62 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.62 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNatKind(nil)) -> mark(tt) 64.85/17.62 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isNatural(0')) -> mark(tt) 64.85/17.62 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.62 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.62 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isNaturalKind(0')) -> mark(tt) 64.85/17.62 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.62 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.62 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.62 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.62 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.62 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.62 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.62 active(U103(X)) -> U103(active(X)) 64.85/17.62 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.62 active(snd(X)) -> snd(active(X)) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.62 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.62 active(U112(X)) -> U112(active(X)) 64.85/17.62 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.62 active(U122(X)) -> U122(active(X)) 64.85/17.62 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.62 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.62 active(U133(X)) -> U133(active(X)) 64.85/17.62 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.62 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.62 active(U143(X)) -> U143(active(X)) 64.85/17.62 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.62 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.62 active(U153(X)) -> U153(active(X)) 64.85/17.62 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.62 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.62 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.62 active(s(X)) -> s(active(X)) 64.85/17.62 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.62 active(head(X)) -> head(active(X)) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.62 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.62 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.62 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.62 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.62 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.62 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.62 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.62 active(fst(X)) -> fst(active(X)) 64.85/17.62 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.62 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.62 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.62 active(U43(X)) -> U43(active(X)) 64.85/17.62 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.62 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.62 active(U53(X)) -> U53(active(X)) 64.85/17.62 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.62 active(U62(X)) -> U62(active(X)) 64.85/17.62 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.62 active(U72(X)) -> U72(active(X)) 64.85/17.62 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.62 active(U82(X)) -> U82(active(X)) 64.85/17.62 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.62 active(U92(X)) -> U92(active(X)) 64.85/17.62 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.62 active(tail(X)) -> tail(active(X)) 64.85/17.62 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.62 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.62 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.62 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.62 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.62 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.62 U103(mark(X)) -> mark(U103(X)) 64.85/17.62 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.62 snd(mark(X)) -> mark(snd(X)) 64.85/17.62 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.62 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.62 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.62 U112(mark(X)) -> mark(U112(X)) 64.85/17.62 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.62 U122(mark(X)) -> mark(U122(X)) 64.85/17.62 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.62 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.62 U133(mark(X)) -> mark(U133(X)) 64.85/17.62 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.62 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.62 U143(mark(X)) -> mark(U143(X)) 64.85/17.62 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.62 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.62 U153(mark(X)) -> mark(U153(X)) 64.85/17.62 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.62 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.62 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.62 s(mark(X)) -> mark(s(X)) 64.85/17.62 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.62 head(mark(X)) -> mark(head(X)) 64.85/17.62 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.62 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.62 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.62 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.62 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.62 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.62 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.62 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.62 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.62 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.62 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.62 fst(mark(X)) -> mark(fst(X)) 64.85/17.62 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.62 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.62 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.62 U43(mark(X)) -> mark(U43(X)) 64.85/17.62 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.62 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.62 U53(mark(X)) -> mark(U53(X)) 64.85/17.62 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.62 U62(mark(X)) -> mark(U62(X)) 64.85/17.62 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.62 U72(mark(X)) -> mark(U72(X)) 64.85/17.62 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.62 U82(mark(X)) -> mark(U82(X)) 64.85/17.62 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.62 U92(mark(X)) -> mark(U92(X)) 64.85/17.62 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.62 tail(mark(X)) -> mark(tail(X)) 64.85/17.62 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.62 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.62 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.62 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.62 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(tt) -> ok(tt) 64.85/17.62 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.62 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.62 proper(U103(X)) -> U103(proper(X)) 64.85/17.62 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.62 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(snd(X)) -> snd(proper(X)) 64.85/17.62 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.62 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.62 proper(U112(X)) -> U112(proper(X)) 64.85/17.62 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.62 proper(U122(X)) -> U122(proper(X)) 64.85/17.62 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.62 proper(U133(X)) -> U133(proper(X)) 64.85/17.62 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.62 proper(U143(X)) -> U143(proper(X)) 64.85/17.62 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.62 proper(U153(X)) -> U153(proper(X)) 64.85/17.62 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.62 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.62 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.62 proper(s(X)) -> s(proper(X)) 64.85/17.62 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(head(X)) -> head(proper(X)) 64.85/17.62 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.62 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.62 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.62 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.62 proper(nil) -> ok(nil) 64.85/17.62 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.62 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.62 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.62 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.62 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(fst(X)) -> fst(proper(X)) 64.85/17.62 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.62 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.62 proper(U43(X)) -> U43(proper(X)) 64.85/17.62 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.62 proper(U53(X)) -> U53(proper(X)) 64.85/17.62 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.62 proper(U62(X)) -> U62(proper(X)) 64.85/17.62 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.62 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.62 proper(U72(X)) -> U72(proper(X)) 64.85/17.62 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.62 proper(U82(X)) -> U82(proper(X)) 64.85/17.62 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.62 proper(U92(X)) -> U92(proper(X)) 64.85/17.62 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.62 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.62 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.62 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.62 proper(tail(X)) -> tail(proper(X)) 64.85/17.62 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.62 proper(0') -> ok(0') 64.85/17.62 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.62 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.62 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.62 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.62 U103(ok(X)) -> ok(U103(X)) 64.85/17.62 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.62 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.62 snd(ok(X)) -> ok(snd(X)) 64.85/17.62 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.62 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.62 U112(ok(X)) -> ok(U112(X)) 64.85/17.62 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.62 U122(ok(X)) -> ok(U122(X)) 64.85/17.62 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.62 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.62 U133(ok(X)) -> ok(U133(X)) 64.85/17.62 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.62 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.62 U143(ok(X)) -> ok(U143(X)) 64.85/17.62 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.62 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.62 U153(ok(X)) -> ok(U153(X)) 64.85/17.62 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.62 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.62 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.62 s(ok(X)) -> ok(s(X)) 64.85/17.62 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.62 head(ok(X)) -> ok(head(X)) 64.85/17.62 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.62 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.62 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.62 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.62 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.62 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.62 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.62 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.62 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.62 fst(ok(X)) -> ok(fst(X)) 64.85/17.62 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.62 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.62 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.62 U43(ok(X)) -> ok(U43(X)) 64.85/17.62 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.62 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.62 U53(ok(X)) -> ok(U53(X)) 64.85/17.62 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.62 U62(ok(X)) -> ok(U62(X)) 64.85/17.62 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.62 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.62 U72(ok(X)) -> ok(U72(X)) 64.85/17.62 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.62 U82(ok(X)) -> ok(U82(X)) 64.85/17.62 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.62 U92(ok(X)) -> ok(U92(X)) 64.85/17.62 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.62 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.62 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.62 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.62 tail(ok(X)) -> ok(tail(X)) 64.85/17.62 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.62 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.62 top(mark(X)) -> top(proper(X)) 64.85/17.62 top(ok(X)) -> top(active(X)) 64.85/17.62 64.85/17.62 Types: 64.85/17.62 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tt :: tt:mark:nil:0':ok 64.85/17.62 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 nil :: tt:mark:nil:0':ok 64.85/17.62 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 0' :: tt:mark:nil:0':ok 64.85/17.62 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 top :: tt:mark:nil:0':ok -> top 64.85/17.62 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.62 hole_top2_0 :: top 64.85/17.62 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.62 64.85/17.62 64.85/17.62 Lemmas: 64.85/17.62 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.62 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.62 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.62 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.62 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.62 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.62 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.62 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.62 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.62 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.62 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.62 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.62 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.62 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.62 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.62 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.62 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.62 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.62 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.62 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.62 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.62 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.62 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.62 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.62 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.62 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.62 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.62 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.62 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.62 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.62 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.62 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.62 64.85/17.62 64.85/17.62 Generator Equations: 64.85/17.62 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.62 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.62 64.85/17.62 64.85/17.62 The following defined symbols remain to be analysed: 64.85/17.62 U41, active, U51, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.62 64.85/17.62 They will be analysed ascendingly in the following order: 64.85/17.62 U41 < active 64.85/17.62 U51 < active 64.85/17.62 U61 < active 64.85/17.62 isPLNatKind < active 64.85/17.62 U71 < active 64.85/17.62 U81 < active 64.85/17.62 U91 < active 64.85/17.62 U101 < active 64.85/17.62 U111 < active 64.85/17.62 U121 < active 64.85/17.62 U131 < active 64.85/17.62 U141 < active 64.85/17.62 U151 < active 64.85/17.62 U161 < active 64.85/17.62 U171 < active 64.85/17.62 U181 < active 64.85/17.62 U191 < active 64.85/17.62 U201 < active 64.85/17.62 U211 < active 64.85/17.62 U221 < active 64.85/17.62 tail < active 64.85/17.62 take < active 64.85/17.62 sel < active 64.85/17.62 active < top 64.85/17.62 U41 < proper 64.85/17.62 U51 < proper 64.85/17.62 U61 < proper 64.85/17.62 isPLNatKind < proper 64.85/17.62 U71 < proper 64.85/17.62 U81 < proper 64.85/17.62 U91 < proper 64.85/17.62 U101 < proper 64.85/17.62 U111 < proper 64.85/17.62 U121 < proper 64.85/17.62 U131 < proper 64.85/17.62 U141 < proper 64.85/17.62 U151 < proper 64.85/17.62 U161 < proper 64.85/17.62 U171 < proper 64.85/17.62 U181 < proper 64.85/17.62 U191 < proper 64.85/17.62 U201 < proper 64.85/17.62 U211 < proper 64.85/17.62 U221 < proper 64.85/17.62 tail < proper 64.85/17.62 take < proper 64.85/17.62 sel < proper 64.85/17.62 proper < top 64.85/17.62 64.85/17.62 ---------------------------------------- 64.85/17.62 64.85/17.62 (93) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.62 Proved the following rewrite lemma: 64.85/17.62 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.62 64.85/17.62 Induction Base: 64.85/17.62 U41(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) 64.85/17.62 64.85/17.62 Induction Step: 64.85/17.62 U41(gen_tt:mark:nil:0':ok3_0(+(1, +(n196411_0, 1))), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) ->_R^Omega(1) 64.85/17.62 mark(U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c))) ->_IH 64.85/17.62 mark(*4_0) 64.85/17.62 64.85/17.62 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.62 ---------------------------------------- 64.85/17.62 64.85/17.62 (94) 64.85/17.62 Obligation: 64.85/17.62 TRS: 64.85/17.62 Rules: 64.85/17.62 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.62 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.62 active(U103(tt)) -> mark(tt) 64.85/17.62 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.62 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.62 active(U112(tt)) -> mark(tt) 64.85/17.62 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.62 active(U122(tt)) -> mark(tt) 64.85/17.62 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.62 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.62 active(U133(tt)) -> mark(tt) 64.85/17.62 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.62 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.62 active(U143(tt)) -> mark(tt) 64.85/17.62 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.62 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.62 active(U153(tt)) -> mark(tt) 64.85/17.62 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.62 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.62 active(U181(tt, Y)) -> mark(Y) 64.85/17.62 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.62 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.62 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.62 active(U21(tt, X)) -> mark(X) 64.85/17.62 active(U211(tt, XS)) -> mark(XS) 64.85/17.62 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.62 active(U31(tt, N)) -> mark(N) 64.85/17.62 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.62 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.62 active(U43(tt)) -> mark(tt) 64.85/17.62 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.62 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.62 active(U53(tt)) -> mark(tt) 64.85/17.62 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.62 active(U62(tt)) -> mark(tt) 64.85/17.62 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.62 active(U72(tt)) -> mark(tt) 64.85/17.62 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.62 active(U82(tt)) -> mark(tt) 64.85/17.62 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.62 active(U92(tt)) -> mark(tt) 64.85/17.62 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(and(tt, X)) -> mark(X) 64.85/17.62 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.62 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.62 active(isLNat(nil)) -> mark(tt) 64.85/17.62 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.62 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.62 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNatKind(nil)) -> mark(tt) 64.85/17.62 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isNatural(0')) -> mark(tt) 64.85/17.62 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.62 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.62 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isNaturalKind(0')) -> mark(tt) 64.85/17.62 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.62 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.62 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.62 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.62 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.62 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.62 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.62 active(U103(X)) -> U103(active(X)) 64.85/17.62 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.62 active(snd(X)) -> snd(active(X)) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.62 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.62 active(U112(X)) -> U112(active(X)) 64.85/17.62 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.62 active(U122(X)) -> U122(active(X)) 64.85/17.62 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.62 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.62 active(U133(X)) -> U133(active(X)) 64.85/17.62 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.62 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.62 active(U143(X)) -> U143(active(X)) 64.85/17.62 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.62 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.62 active(U153(X)) -> U153(active(X)) 64.85/17.62 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.62 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.62 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.62 active(s(X)) -> s(active(X)) 64.85/17.62 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.62 active(head(X)) -> head(active(X)) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.62 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.62 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.62 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.62 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.62 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.62 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.62 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.62 active(fst(X)) -> fst(active(X)) 64.85/17.62 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.62 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.62 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.62 active(U43(X)) -> U43(active(X)) 64.85/17.62 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.62 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.62 active(U53(X)) -> U53(active(X)) 64.85/17.62 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.62 active(U62(X)) -> U62(active(X)) 64.85/17.62 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.62 active(U72(X)) -> U72(active(X)) 64.85/17.62 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.62 active(U82(X)) -> U82(active(X)) 64.85/17.62 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.62 active(U92(X)) -> U92(active(X)) 64.85/17.62 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.62 active(tail(X)) -> tail(active(X)) 64.85/17.62 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.62 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.62 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.62 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.62 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.62 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.62 U103(mark(X)) -> mark(U103(X)) 64.85/17.62 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.62 snd(mark(X)) -> mark(snd(X)) 64.85/17.62 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.62 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.62 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.62 U112(mark(X)) -> mark(U112(X)) 64.85/17.62 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.62 U122(mark(X)) -> mark(U122(X)) 64.85/17.62 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.62 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.62 U133(mark(X)) -> mark(U133(X)) 64.85/17.62 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.62 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.62 U143(mark(X)) -> mark(U143(X)) 64.85/17.62 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.62 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.62 U153(mark(X)) -> mark(U153(X)) 64.85/17.62 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.62 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.62 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.62 s(mark(X)) -> mark(s(X)) 64.85/17.62 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.62 head(mark(X)) -> mark(head(X)) 64.85/17.62 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.62 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.62 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.62 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.62 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.62 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.62 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.62 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.62 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.62 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.62 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.62 fst(mark(X)) -> mark(fst(X)) 64.85/17.62 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.62 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.62 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.62 U43(mark(X)) -> mark(U43(X)) 64.85/17.62 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.62 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.62 U53(mark(X)) -> mark(U53(X)) 64.85/17.62 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.62 U62(mark(X)) -> mark(U62(X)) 64.85/17.62 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.62 U72(mark(X)) -> mark(U72(X)) 64.85/17.62 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.62 U82(mark(X)) -> mark(U82(X)) 64.85/17.62 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.62 U92(mark(X)) -> mark(U92(X)) 64.85/17.62 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.62 tail(mark(X)) -> mark(tail(X)) 64.85/17.62 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.62 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.62 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.62 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.62 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(tt) -> ok(tt) 64.85/17.62 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.62 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.62 proper(U103(X)) -> U103(proper(X)) 64.85/17.62 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.62 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(snd(X)) -> snd(proper(X)) 64.85/17.62 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.62 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.62 proper(U112(X)) -> U112(proper(X)) 64.85/17.62 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.62 proper(U122(X)) -> U122(proper(X)) 64.85/17.62 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.62 proper(U133(X)) -> U133(proper(X)) 64.85/17.62 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.62 proper(U143(X)) -> U143(proper(X)) 64.85/17.62 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.62 proper(U153(X)) -> U153(proper(X)) 64.85/17.62 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.62 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.62 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.62 proper(s(X)) -> s(proper(X)) 64.85/17.62 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(head(X)) -> head(proper(X)) 64.85/17.62 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.62 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.62 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.62 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.62 proper(nil) -> ok(nil) 64.85/17.62 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.62 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.62 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.62 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.62 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(fst(X)) -> fst(proper(X)) 64.85/17.62 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.62 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.62 proper(U43(X)) -> U43(proper(X)) 64.85/17.62 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.62 proper(U53(X)) -> U53(proper(X)) 64.85/17.62 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.62 proper(U62(X)) -> U62(proper(X)) 64.85/17.62 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.62 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.62 proper(U72(X)) -> U72(proper(X)) 64.85/17.62 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.62 proper(U82(X)) -> U82(proper(X)) 64.85/17.62 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.62 proper(U92(X)) -> U92(proper(X)) 64.85/17.62 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.62 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.62 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.62 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.62 proper(tail(X)) -> tail(proper(X)) 64.85/17.62 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.62 proper(0') -> ok(0') 64.85/17.62 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.62 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.62 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.62 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.62 U103(ok(X)) -> ok(U103(X)) 64.85/17.62 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.62 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.62 snd(ok(X)) -> ok(snd(X)) 64.85/17.62 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.62 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.62 U112(ok(X)) -> ok(U112(X)) 64.85/17.62 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.62 U122(ok(X)) -> ok(U122(X)) 64.85/17.62 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.62 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.62 U133(ok(X)) -> ok(U133(X)) 64.85/17.62 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.62 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.62 U143(ok(X)) -> ok(U143(X)) 64.85/17.62 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.62 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.62 U153(ok(X)) -> ok(U153(X)) 64.85/17.62 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.62 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.62 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.62 s(ok(X)) -> ok(s(X)) 64.85/17.62 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.62 head(ok(X)) -> ok(head(X)) 64.85/17.62 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.62 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.62 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.62 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.62 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.62 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.62 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.62 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.62 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.62 fst(ok(X)) -> ok(fst(X)) 64.85/17.62 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.62 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.62 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.62 U43(ok(X)) -> ok(U43(X)) 64.85/17.62 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.62 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.62 U53(ok(X)) -> ok(U53(X)) 64.85/17.62 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.62 U62(ok(X)) -> ok(U62(X)) 64.85/17.62 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.62 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.62 U72(ok(X)) -> ok(U72(X)) 64.85/17.62 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.62 U82(ok(X)) -> ok(U82(X)) 64.85/17.62 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.62 U92(ok(X)) -> ok(U92(X)) 64.85/17.62 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.62 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.62 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.62 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.62 tail(ok(X)) -> ok(tail(X)) 64.85/17.62 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.62 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.62 top(mark(X)) -> top(proper(X)) 64.85/17.62 top(ok(X)) -> top(active(X)) 64.85/17.62 64.85/17.62 Types: 64.85/17.62 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tt :: tt:mark:nil:0':ok 64.85/17.62 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 nil :: tt:mark:nil:0':ok 64.85/17.62 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 0' :: tt:mark:nil:0':ok 64.85/17.62 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 top :: tt:mark:nil:0':ok -> top 64.85/17.62 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.62 hole_top2_0 :: top 64.85/17.62 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.62 64.85/17.62 64.85/17.62 Lemmas: 64.85/17.62 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.62 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.62 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.62 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.62 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.62 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.62 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.62 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.62 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.62 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.62 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.62 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.62 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.62 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.62 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.62 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.62 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.62 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.62 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.62 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.62 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.62 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.62 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.62 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.62 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.62 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.62 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.62 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.62 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.62 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.62 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.62 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.62 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.62 64.85/17.62 64.85/17.62 Generator Equations: 64.85/17.62 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.62 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.62 64.85/17.62 64.85/17.62 The following defined symbols remain to be analysed: 64.85/17.62 U51, active, U61, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.62 64.85/17.62 They will be analysed ascendingly in the following order: 64.85/17.62 U51 < active 64.85/17.62 U61 < active 64.85/17.62 isPLNatKind < active 64.85/17.62 U71 < active 64.85/17.62 U81 < active 64.85/17.62 U91 < active 64.85/17.62 U101 < active 64.85/17.62 U111 < active 64.85/17.62 U121 < active 64.85/17.62 U131 < active 64.85/17.62 U141 < active 64.85/17.62 U151 < active 64.85/17.62 U161 < active 64.85/17.62 U171 < active 64.85/17.62 U181 < active 64.85/17.62 U191 < active 64.85/17.62 U201 < active 64.85/17.62 U211 < active 64.85/17.62 U221 < active 64.85/17.62 tail < active 64.85/17.62 take < active 64.85/17.62 sel < active 64.85/17.62 active < top 64.85/17.62 U51 < proper 64.85/17.62 U61 < proper 64.85/17.62 isPLNatKind < proper 64.85/17.62 U71 < proper 64.85/17.62 U81 < proper 64.85/17.62 U91 < proper 64.85/17.62 U101 < proper 64.85/17.62 U111 < proper 64.85/17.62 U121 < proper 64.85/17.62 U131 < proper 64.85/17.62 U141 < proper 64.85/17.62 U151 < proper 64.85/17.62 U161 < proper 64.85/17.62 U171 < proper 64.85/17.62 U181 < proper 64.85/17.62 U191 < proper 64.85/17.62 U201 < proper 64.85/17.62 U211 < proper 64.85/17.62 U221 < proper 64.85/17.62 tail < proper 64.85/17.62 take < proper 64.85/17.62 sel < proper 64.85/17.62 proper < top 64.85/17.62 64.85/17.62 ---------------------------------------- 64.85/17.62 64.85/17.62 (95) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.62 Proved the following rewrite lemma: 64.85/17.62 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.62 64.85/17.62 Induction Base: 64.85/17.62 U51(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) 64.85/17.62 64.85/17.62 Induction Step: 64.85/17.62 U51(gen_tt:mark:nil:0':ok3_0(+(1, +(n217521_0, 1))), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) ->_R^Omega(1) 64.85/17.62 mark(U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c))) ->_IH 64.85/17.62 mark(*4_0) 64.85/17.62 64.85/17.62 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.62 ---------------------------------------- 64.85/17.62 64.85/17.62 (96) 64.85/17.62 Obligation: 64.85/17.62 TRS: 64.85/17.62 Rules: 64.85/17.62 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.62 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.62 active(U103(tt)) -> mark(tt) 64.85/17.62 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.62 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.62 active(U112(tt)) -> mark(tt) 64.85/17.62 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.62 active(U122(tt)) -> mark(tt) 64.85/17.62 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.62 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.62 active(U133(tt)) -> mark(tt) 64.85/17.62 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.62 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.62 active(U143(tt)) -> mark(tt) 64.85/17.62 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.62 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.62 active(U153(tt)) -> mark(tt) 64.85/17.62 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.62 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.62 active(U181(tt, Y)) -> mark(Y) 64.85/17.62 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.62 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.62 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.62 active(U21(tt, X)) -> mark(X) 64.85/17.62 active(U211(tt, XS)) -> mark(XS) 64.85/17.62 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.62 active(U31(tt, N)) -> mark(N) 64.85/17.62 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.62 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.62 active(U43(tt)) -> mark(tt) 64.85/17.62 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.62 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.62 active(U53(tt)) -> mark(tt) 64.85/17.62 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.62 active(U62(tt)) -> mark(tt) 64.85/17.62 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.62 active(U72(tt)) -> mark(tt) 64.85/17.62 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.62 active(U82(tt)) -> mark(tt) 64.85/17.62 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.62 active(U92(tt)) -> mark(tt) 64.85/17.62 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(and(tt, X)) -> mark(X) 64.85/17.62 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.62 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.62 active(isLNat(nil)) -> mark(tt) 64.85/17.62 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.62 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.62 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNatKind(nil)) -> mark(tt) 64.85/17.62 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isNatural(0')) -> mark(tt) 64.85/17.62 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.62 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.62 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isNaturalKind(0')) -> mark(tt) 64.85/17.62 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.62 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.62 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.62 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.62 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.62 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.62 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.62 active(U103(X)) -> U103(active(X)) 64.85/17.62 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.62 active(snd(X)) -> snd(active(X)) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.62 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.62 active(U112(X)) -> U112(active(X)) 64.85/17.62 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.62 active(U122(X)) -> U122(active(X)) 64.85/17.62 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.62 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.62 active(U133(X)) -> U133(active(X)) 64.85/17.62 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.62 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.62 active(U143(X)) -> U143(active(X)) 64.85/17.62 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.62 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.62 active(U153(X)) -> U153(active(X)) 64.85/17.62 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.62 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.62 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.62 active(s(X)) -> s(active(X)) 64.85/17.62 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.62 active(head(X)) -> head(active(X)) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.62 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.62 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.62 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.62 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.62 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.62 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.62 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.62 active(fst(X)) -> fst(active(X)) 64.85/17.62 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.62 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.62 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.62 active(U43(X)) -> U43(active(X)) 64.85/17.62 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.62 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.62 active(U53(X)) -> U53(active(X)) 64.85/17.62 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.62 active(U62(X)) -> U62(active(X)) 64.85/17.62 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.62 active(U72(X)) -> U72(active(X)) 64.85/17.62 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.62 active(U82(X)) -> U82(active(X)) 64.85/17.62 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.62 active(U92(X)) -> U92(active(X)) 64.85/17.62 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.62 active(tail(X)) -> tail(active(X)) 64.85/17.62 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.62 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.62 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.62 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.62 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.62 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.62 U103(mark(X)) -> mark(U103(X)) 64.85/17.62 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.62 snd(mark(X)) -> mark(snd(X)) 64.85/17.62 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.62 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.62 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.62 U112(mark(X)) -> mark(U112(X)) 64.85/17.62 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.62 U122(mark(X)) -> mark(U122(X)) 64.85/17.62 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.62 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.62 U133(mark(X)) -> mark(U133(X)) 64.85/17.62 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.62 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.62 U143(mark(X)) -> mark(U143(X)) 64.85/17.62 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.62 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.62 U153(mark(X)) -> mark(U153(X)) 64.85/17.62 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.62 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.62 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.62 s(mark(X)) -> mark(s(X)) 64.85/17.62 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.62 head(mark(X)) -> mark(head(X)) 64.85/17.62 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.62 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.62 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.62 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.62 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.62 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.62 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.62 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.62 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.62 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.62 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.62 fst(mark(X)) -> mark(fst(X)) 64.85/17.62 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.62 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.62 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.62 U43(mark(X)) -> mark(U43(X)) 64.85/17.62 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.62 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.62 U53(mark(X)) -> mark(U53(X)) 64.85/17.62 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.62 U62(mark(X)) -> mark(U62(X)) 64.85/17.62 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.62 U72(mark(X)) -> mark(U72(X)) 64.85/17.62 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.62 U82(mark(X)) -> mark(U82(X)) 64.85/17.62 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.62 U92(mark(X)) -> mark(U92(X)) 64.85/17.62 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.62 tail(mark(X)) -> mark(tail(X)) 64.85/17.62 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.62 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.62 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.62 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.62 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(tt) -> ok(tt) 64.85/17.62 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.62 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.62 proper(U103(X)) -> U103(proper(X)) 64.85/17.62 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.62 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(snd(X)) -> snd(proper(X)) 64.85/17.62 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.62 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.62 proper(U112(X)) -> U112(proper(X)) 64.85/17.62 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.62 proper(U122(X)) -> U122(proper(X)) 64.85/17.62 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.62 proper(U133(X)) -> U133(proper(X)) 64.85/17.62 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.62 proper(U143(X)) -> U143(proper(X)) 64.85/17.62 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.62 proper(U153(X)) -> U153(proper(X)) 64.85/17.62 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.62 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.62 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.62 proper(s(X)) -> s(proper(X)) 64.85/17.62 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(head(X)) -> head(proper(X)) 64.85/17.62 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.62 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.62 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.62 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.62 proper(nil) -> ok(nil) 64.85/17.62 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.62 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.62 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.62 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.62 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(fst(X)) -> fst(proper(X)) 64.85/17.62 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.62 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.62 proper(U43(X)) -> U43(proper(X)) 64.85/17.62 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.62 proper(U53(X)) -> U53(proper(X)) 64.85/17.62 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.62 proper(U62(X)) -> U62(proper(X)) 64.85/17.62 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.62 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.62 proper(U72(X)) -> U72(proper(X)) 64.85/17.62 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.62 proper(U82(X)) -> U82(proper(X)) 64.85/17.62 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.62 proper(U92(X)) -> U92(proper(X)) 64.85/17.62 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.62 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.62 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.62 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.62 proper(tail(X)) -> tail(proper(X)) 64.85/17.62 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.62 proper(0') -> ok(0') 64.85/17.62 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.62 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.62 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.62 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.62 U103(ok(X)) -> ok(U103(X)) 64.85/17.62 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.62 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.62 snd(ok(X)) -> ok(snd(X)) 64.85/17.62 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.62 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.62 U112(ok(X)) -> ok(U112(X)) 64.85/17.62 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.62 U122(ok(X)) -> ok(U122(X)) 64.85/17.62 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.62 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.62 U133(ok(X)) -> ok(U133(X)) 64.85/17.62 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.62 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.62 U143(ok(X)) -> ok(U143(X)) 64.85/17.62 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.62 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.62 U153(ok(X)) -> ok(U153(X)) 64.85/17.62 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.62 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.62 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.62 s(ok(X)) -> ok(s(X)) 64.85/17.62 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.62 head(ok(X)) -> ok(head(X)) 64.85/17.62 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.62 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.62 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.62 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.62 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.62 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.62 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.62 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.62 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.62 fst(ok(X)) -> ok(fst(X)) 64.85/17.62 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.62 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.62 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.62 U43(ok(X)) -> ok(U43(X)) 64.85/17.62 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.62 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.62 U53(ok(X)) -> ok(U53(X)) 64.85/17.62 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.62 U62(ok(X)) -> ok(U62(X)) 64.85/17.62 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.62 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.62 U72(ok(X)) -> ok(U72(X)) 64.85/17.62 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.62 U82(ok(X)) -> ok(U82(X)) 64.85/17.62 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.62 U92(ok(X)) -> ok(U92(X)) 64.85/17.62 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.62 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.62 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.62 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.62 tail(ok(X)) -> ok(tail(X)) 64.85/17.62 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.62 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.62 top(mark(X)) -> top(proper(X)) 64.85/17.62 top(ok(X)) -> top(active(X)) 64.85/17.62 64.85/17.62 Types: 64.85/17.62 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tt :: tt:mark:nil:0':ok 64.85/17.62 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 nil :: tt:mark:nil:0':ok 64.85/17.62 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 0' :: tt:mark:nil:0':ok 64.85/17.62 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 top :: tt:mark:nil:0':ok -> top 64.85/17.62 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.62 hole_top2_0 :: top 64.85/17.62 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.62 64.85/17.62 64.85/17.62 Lemmas: 64.85/17.62 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.62 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.62 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.62 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.62 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.62 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.62 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.62 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.62 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.62 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.62 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.62 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.62 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.62 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.62 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.62 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.62 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.62 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.62 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.62 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.62 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.62 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.62 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.62 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.62 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.62 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.62 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.62 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.62 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.62 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.62 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.62 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.62 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.62 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.62 64.85/17.62 64.85/17.62 Generator Equations: 64.85/17.62 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.62 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.62 64.85/17.62 64.85/17.62 The following defined symbols remain to be analysed: 64.85/17.62 U61, active, isPLNatKind, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.62 64.85/17.62 They will be analysed ascendingly in the following order: 64.85/17.62 U61 < active 64.85/17.62 isPLNatKind < active 64.85/17.62 U71 < active 64.85/17.62 U81 < active 64.85/17.62 U91 < active 64.85/17.62 U101 < active 64.85/17.62 U111 < active 64.85/17.62 U121 < active 64.85/17.62 U131 < active 64.85/17.62 U141 < active 64.85/17.62 U151 < active 64.85/17.62 U161 < active 64.85/17.62 U171 < active 64.85/17.62 U181 < active 64.85/17.62 U191 < active 64.85/17.62 U201 < active 64.85/17.62 U211 < active 64.85/17.62 U221 < active 64.85/17.62 tail < active 64.85/17.62 take < active 64.85/17.62 sel < active 64.85/17.62 active < top 64.85/17.62 U61 < proper 64.85/17.62 isPLNatKind < proper 64.85/17.62 U71 < proper 64.85/17.62 U81 < proper 64.85/17.62 U91 < proper 64.85/17.62 U101 < proper 64.85/17.62 U111 < proper 64.85/17.62 U121 < proper 64.85/17.62 U131 < proper 64.85/17.62 U141 < proper 64.85/17.62 U151 < proper 64.85/17.62 U161 < proper 64.85/17.62 U171 < proper 64.85/17.62 U181 < proper 64.85/17.62 U191 < proper 64.85/17.62 U201 < proper 64.85/17.62 U211 < proper 64.85/17.62 U221 < proper 64.85/17.62 tail < proper 64.85/17.62 take < proper 64.85/17.62 sel < proper 64.85/17.62 proper < top 64.85/17.62 64.85/17.62 ---------------------------------------- 64.85/17.62 64.85/17.62 (97) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.62 Proved the following rewrite lemma: 64.85/17.62 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.62 64.85/17.62 Induction Base: 64.85/17.62 U61(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.85/17.62 64.85/17.62 Induction Step: 64.85/17.62 U61(gen_tt:mark:nil:0':ok3_0(+(1, +(n239240_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.85/17.62 mark(U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.85/17.62 mark(*4_0) 64.85/17.62 64.85/17.62 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.62 ---------------------------------------- 64.85/17.62 64.85/17.62 (98) 64.85/17.62 Obligation: 64.85/17.62 TRS: 64.85/17.62 Rules: 64.85/17.62 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.62 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.62 active(U103(tt)) -> mark(tt) 64.85/17.62 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.62 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.62 active(U112(tt)) -> mark(tt) 64.85/17.62 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.62 active(U122(tt)) -> mark(tt) 64.85/17.62 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.62 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.62 active(U133(tt)) -> mark(tt) 64.85/17.62 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.62 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.62 active(U143(tt)) -> mark(tt) 64.85/17.62 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.62 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.62 active(U153(tt)) -> mark(tt) 64.85/17.62 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.62 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.62 active(U181(tt, Y)) -> mark(Y) 64.85/17.62 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.62 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.62 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.62 active(U21(tt, X)) -> mark(X) 64.85/17.62 active(U211(tt, XS)) -> mark(XS) 64.85/17.62 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.62 active(U31(tt, N)) -> mark(N) 64.85/17.62 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.62 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.62 active(U43(tt)) -> mark(tt) 64.85/17.62 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.62 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.62 active(U53(tt)) -> mark(tt) 64.85/17.62 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.62 active(U62(tt)) -> mark(tt) 64.85/17.62 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.62 active(U72(tt)) -> mark(tt) 64.85/17.62 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.62 active(U82(tt)) -> mark(tt) 64.85/17.62 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.62 active(U92(tt)) -> mark(tt) 64.85/17.62 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(and(tt, X)) -> mark(X) 64.85/17.62 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.62 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.62 active(isLNat(nil)) -> mark(tt) 64.85/17.62 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.62 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.62 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.62 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isLNatKind(nil)) -> mark(tt) 64.85/17.62 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.62 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isNatural(0')) -> mark(tt) 64.85/17.62 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.62 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.62 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isNaturalKind(0')) -> mark(tt) 64.85/17.62 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.62 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.62 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.62 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.62 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.62 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.62 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.62 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.62 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.62 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.62 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.62 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.62 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.62 active(U103(X)) -> U103(active(X)) 64.85/17.62 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.62 active(snd(X)) -> snd(active(X)) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.62 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.62 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.62 active(U112(X)) -> U112(active(X)) 64.85/17.62 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.62 active(U122(X)) -> U122(active(X)) 64.85/17.62 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.62 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.62 active(U133(X)) -> U133(active(X)) 64.85/17.62 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.62 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.62 active(U143(X)) -> U143(active(X)) 64.85/17.62 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.62 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.62 active(U153(X)) -> U153(active(X)) 64.85/17.62 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.62 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.62 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.62 active(s(X)) -> s(active(X)) 64.85/17.62 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.62 active(head(X)) -> head(active(X)) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.62 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.62 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.62 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.62 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.62 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.62 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.62 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.62 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.62 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.62 active(fst(X)) -> fst(active(X)) 64.85/17.62 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.62 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.62 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.62 active(U43(X)) -> U43(active(X)) 64.85/17.62 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.62 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.62 active(U53(X)) -> U53(active(X)) 64.85/17.62 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.62 active(U62(X)) -> U62(active(X)) 64.85/17.62 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.62 active(U72(X)) -> U72(active(X)) 64.85/17.62 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.62 active(U82(X)) -> U82(active(X)) 64.85/17.62 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.62 active(U92(X)) -> U92(active(X)) 64.85/17.62 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.62 active(tail(X)) -> tail(active(X)) 64.85/17.62 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.62 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.62 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.62 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.62 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.62 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.62 U103(mark(X)) -> mark(U103(X)) 64.85/17.62 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.62 snd(mark(X)) -> mark(snd(X)) 64.85/17.62 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.62 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.62 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.62 U112(mark(X)) -> mark(U112(X)) 64.85/17.62 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.62 U122(mark(X)) -> mark(U122(X)) 64.85/17.62 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.62 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.62 U133(mark(X)) -> mark(U133(X)) 64.85/17.62 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.62 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.62 U143(mark(X)) -> mark(U143(X)) 64.85/17.62 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.62 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.62 U153(mark(X)) -> mark(U153(X)) 64.85/17.62 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.62 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.62 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.62 s(mark(X)) -> mark(s(X)) 64.85/17.62 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.62 head(mark(X)) -> mark(head(X)) 64.85/17.62 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.62 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.62 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.62 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.62 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.62 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.62 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.62 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.62 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.62 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.62 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.62 fst(mark(X)) -> mark(fst(X)) 64.85/17.62 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.62 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.62 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.62 U43(mark(X)) -> mark(U43(X)) 64.85/17.62 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.62 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.62 U53(mark(X)) -> mark(U53(X)) 64.85/17.62 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.62 U62(mark(X)) -> mark(U62(X)) 64.85/17.62 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.62 U72(mark(X)) -> mark(U72(X)) 64.85/17.62 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.62 U82(mark(X)) -> mark(U82(X)) 64.85/17.62 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.62 U92(mark(X)) -> mark(U92(X)) 64.85/17.62 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.62 tail(mark(X)) -> mark(tail(X)) 64.85/17.62 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.62 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.62 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.62 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.62 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(tt) -> ok(tt) 64.85/17.62 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.62 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.62 proper(U103(X)) -> U103(proper(X)) 64.85/17.62 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.62 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(snd(X)) -> snd(proper(X)) 64.85/17.62 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.62 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.62 proper(U112(X)) -> U112(proper(X)) 64.85/17.62 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.62 proper(U122(X)) -> U122(proper(X)) 64.85/17.62 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.62 proper(U133(X)) -> U133(proper(X)) 64.85/17.62 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.62 proper(U143(X)) -> U143(proper(X)) 64.85/17.62 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.62 proper(U153(X)) -> U153(proper(X)) 64.85/17.62 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.62 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.62 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.62 proper(s(X)) -> s(proper(X)) 64.85/17.62 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(head(X)) -> head(proper(X)) 64.85/17.62 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.62 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.62 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.62 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.62 proper(nil) -> ok(nil) 64.85/17.62 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.62 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.62 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.62 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.62 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(fst(X)) -> fst(proper(X)) 64.85/17.62 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.62 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.62 proper(U43(X)) -> U43(proper(X)) 64.85/17.62 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.62 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.62 proper(U53(X)) -> U53(proper(X)) 64.85/17.62 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.62 proper(U62(X)) -> U62(proper(X)) 64.85/17.62 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.62 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.62 proper(U72(X)) -> U72(proper(X)) 64.85/17.62 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.62 proper(U82(X)) -> U82(proper(X)) 64.85/17.62 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.62 proper(U92(X)) -> U92(proper(X)) 64.85/17.62 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.62 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.62 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.62 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.62 proper(tail(X)) -> tail(proper(X)) 64.85/17.62 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.62 proper(0') -> ok(0') 64.85/17.62 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.62 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.62 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.62 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.62 U103(ok(X)) -> ok(U103(X)) 64.85/17.62 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.62 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.62 snd(ok(X)) -> ok(snd(X)) 64.85/17.62 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.62 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.62 U112(ok(X)) -> ok(U112(X)) 64.85/17.62 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.62 U122(ok(X)) -> ok(U122(X)) 64.85/17.62 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.62 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.62 U133(ok(X)) -> ok(U133(X)) 64.85/17.62 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.62 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.62 U143(ok(X)) -> ok(U143(X)) 64.85/17.62 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.62 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.62 U153(ok(X)) -> ok(U153(X)) 64.85/17.62 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.62 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.62 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.62 s(ok(X)) -> ok(s(X)) 64.85/17.62 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.62 head(ok(X)) -> ok(head(X)) 64.85/17.62 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.62 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.62 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.62 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.62 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.62 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.62 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.62 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.62 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.62 fst(ok(X)) -> ok(fst(X)) 64.85/17.62 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.62 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.62 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.62 U43(ok(X)) -> ok(U43(X)) 64.85/17.62 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.62 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.62 U53(ok(X)) -> ok(U53(X)) 64.85/17.62 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.62 U62(ok(X)) -> ok(U62(X)) 64.85/17.62 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.62 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.62 U72(ok(X)) -> ok(U72(X)) 64.85/17.62 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.62 U82(ok(X)) -> ok(U82(X)) 64.85/17.62 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.62 U92(ok(X)) -> ok(U92(X)) 64.85/17.62 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.62 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.62 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.62 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.62 tail(ok(X)) -> ok(tail(X)) 64.85/17.62 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.62 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.62 top(mark(X)) -> top(proper(X)) 64.85/17.62 top(ok(X)) -> top(active(X)) 64.85/17.62 64.85/17.62 Types: 64.85/17.62 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 tt :: tt:mark:nil:0':ok 64.85/17.62 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 nil :: tt:mark:nil:0':ok 64.85/17.62 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.62 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 0' :: tt:mark:nil:0':ok 64.85/17.63 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 top :: tt:mark:nil:0':ok -> top 64.85/17.63 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.63 hole_top2_0 :: top 64.85/17.63 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.63 64.85/17.63 64.85/17.63 Lemmas: 64.85/17.63 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.63 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.63 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.63 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.63 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.63 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.63 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.63 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.63 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.63 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.63 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.63 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.63 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.63 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.63 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.63 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.63 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.63 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.63 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.63 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.63 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.63 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.63 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.63 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.63 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.63 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.63 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.63 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.63 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.63 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.63 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.63 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.63 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.63 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.63 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.63 64.85/17.63 64.85/17.63 Generator Equations: 64.85/17.63 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.63 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.63 64.85/17.63 64.85/17.63 The following defined symbols remain to be analysed: 64.85/17.63 isPLNatKind, active, U71, U81, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.63 64.85/17.63 They will be analysed ascendingly in the following order: 64.85/17.63 isPLNatKind < active 64.85/17.63 U71 < active 64.85/17.63 U81 < active 64.85/17.63 U91 < active 64.85/17.63 U101 < active 64.85/17.63 U111 < active 64.85/17.63 U121 < active 64.85/17.63 U131 < active 64.85/17.63 U141 < active 64.85/17.63 U151 < active 64.85/17.63 U161 < active 64.85/17.63 U171 < active 64.85/17.63 U181 < active 64.85/17.63 U191 < active 64.85/17.63 U201 < active 64.85/17.63 U211 < active 64.85/17.63 U221 < active 64.85/17.63 tail < active 64.85/17.63 take < active 64.85/17.63 sel < active 64.85/17.63 active < top 64.85/17.63 isPLNatKind < proper 64.85/17.63 U71 < proper 64.85/17.63 U81 < proper 64.85/17.63 U91 < proper 64.85/17.63 U101 < proper 64.85/17.63 U111 < proper 64.85/17.63 U121 < proper 64.85/17.63 U131 < proper 64.85/17.63 U141 < proper 64.85/17.63 U151 < proper 64.85/17.63 U161 < proper 64.85/17.63 U171 < proper 64.85/17.63 U181 < proper 64.85/17.63 U191 < proper 64.85/17.63 U201 < proper 64.85/17.63 U211 < proper 64.85/17.63 U221 < proper 64.85/17.63 tail < proper 64.85/17.63 take < proper 64.85/17.63 sel < proper 64.85/17.63 proper < top 64.85/17.63 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (99) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.63 Proved the following rewrite lemma: 64.85/17.63 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.63 64.85/17.63 Induction Base: 64.85/17.63 U71(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.85/17.63 64.85/17.63 Induction Step: 64.85/17.63 U71(gen_tt:mark:nil:0':ok3_0(+(1, +(n253380_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.85/17.63 mark(U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.85/17.63 mark(*4_0) 64.85/17.63 64.85/17.63 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (100) 64.85/17.63 Obligation: 64.85/17.63 TRS: 64.85/17.63 Rules: 64.85/17.63 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.63 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.63 active(U103(tt)) -> mark(tt) 64.85/17.63 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.63 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.63 active(U112(tt)) -> mark(tt) 64.85/17.63 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.63 active(U122(tt)) -> mark(tt) 64.85/17.63 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.63 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.63 active(U133(tt)) -> mark(tt) 64.85/17.63 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.63 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.63 active(U143(tt)) -> mark(tt) 64.85/17.63 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.63 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.63 active(U153(tt)) -> mark(tt) 64.85/17.63 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.63 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.63 active(U181(tt, Y)) -> mark(Y) 64.85/17.63 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.63 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.63 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.63 active(U21(tt, X)) -> mark(X) 64.85/17.63 active(U211(tt, XS)) -> mark(XS) 64.85/17.63 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.63 active(U31(tt, N)) -> mark(N) 64.85/17.63 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.63 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.63 active(U43(tt)) -> mark(tt) 64.85/17.63 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.63 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.63 active(U53(tt)) -> mark(tt) 64.85/17.63 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.63 active(U62(tt)) -> mark(tt) 64.85/17.63 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.63 active(U72(tt)) -> mark(tt) 64.85/17.63 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.63 active(U82(tt)) -> mark(tt) 64.85/17.63 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.63 active(U92(tt)) -> mark(tt) 64.85/17.63 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(and(tt, X)) -> mark(X) 64.85/17.63 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.63 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.63 active(isLNat(nil)) -> mark(tt) 64.85/17.63 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.63 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.63 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNatKind(nil)) -> mark(tt) 64.85/17.63 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isNatural(0')) -> mark(tt) 64.85/17.63 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.63 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.63 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isNaturalKind(0')) -> mark(tt) 64.85/17.63 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.63 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.63 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.63 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.63 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.63 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.63 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.63 active(U103(X)) -> U103(active(X)) 64.85/17.63 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.63 active(snd(X)) -> snd(active(X)) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.63 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.63 active(U112(X)) -> U112(active(X)) 64.85/17.63 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.63 active(U122(X)) -> U122(active(X)) 64.85/17.63 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.63 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.63 active(U133(X)) -> U133(active(X)) 64.85/17.63 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.63 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.63 active(U143(X)) -> U143(active(X)) 64.85/17.63 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.63 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.63 active(U153(X)) -> U153(active(X)) 64.85/17.63 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.63 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.63 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.63 active(s(X)) -> s(active(X)) 64.85/17.63 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.63 active(head(X)) -> head(active(X)) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.63 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.63 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.63 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.63 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.63 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.63 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.63 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.63 active(fst(X)) -> fst(active(X)) 64.85/17.63 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.63 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.63 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.63 active(U43(X)) -> U43(active(X)) 64.85/17.63 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.63 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.63 active(U53(X)) -> U53(active(X)) 64.85/17.63 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.63 active(U62(X)) -> U62(active(X)) 64.85/17.63 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.63 active(U72(X)) -> U72(active(X)) 64.85/17.63 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.63 active(U82(X)) -> U82(active(X)) 64.85/17.63 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.63 active(U92(X)) -> U92(active(X)) 64.85/17.63 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.63 active(tail(X)) -> tail(active(X)) 64.85/17.63 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.63 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.63 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.63 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.63 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.63 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.63 U103(mark(X)) -> mark(U103(X)) 64.85/17.63 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.63 snd(mark(X)) -> mark(snd(X)) 64.85/17.63 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.63 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.63 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.63 U112(mark(X)) -> mark(U112(X)) 64.85/17.63 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.63 U122(mark(X)) -> mark(U122(X)) 64.85/17.63 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.63 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.63 U133(mark(X)) -> mark(U133(X)) 64.85/17.63 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.63 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.63 U143(mark(X)) -> mark(U143(X)) 64.85/17.63 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.63 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.63 U153(mark(X)) -> mark(U153(X)) 64.85/17.63 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.63 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.63 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.63 s(mark(X)) -> mark(s(X)) 64.85/17.63 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.63 head(mark(X)) -> mark(head(X)) 64.85/17.63 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.63 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.63 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.63 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.63 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.63 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.63 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.63 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.63 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.63 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.63 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.63 fst(mark(X)) -> mark(fst(X)) 64.85/17.63 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.63 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.63 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.63 U43(mark(X)) -> mark(U43(X)) 64.85/17.63 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.63 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.63 U53(mark(X)) -> mark(U53(X)) 64.85/17.63 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.63 U62(mark(X)) -> mark(U62(X)) 64.85/17.63 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.63 U72(mark(X)) -> mark(U72(X)) 64.85/17.63 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.63 U82(mark(X)) -> mark(U82(X)) 64.85/17.63 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.63 U92(mark(X)) -> mark(U92(X)) 64.85/17.63 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.63 tail(mark(X)) -> mark(tail(X)) 64.85/17.63 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.63 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.63 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.63 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.63 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(tt) -> ok(tt) 64.85/17.63 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.63 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.63 proper(U103(X)) -> U103(proper(X)) 64.85/17.63 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.63 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(snd(X)) -> snd(proper(X)) 64.85/17.63 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.63 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.63 proper(U112(X)) -> U112(proper(X)) 64.85/17.63 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.63 proper(U122(X)) -> U122(proper(X)) 64.85/17.63 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.63 proper(U133(X)) -> U133(proper(X)) 64.85/17.63 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.63 proper(U143(X)) -> U143(proper(X)) 64.85/17.63 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.63 proper(U153(X)) -> U153(proper(X)) 64.85/17.63 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.63 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.63 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.63 proper(s(X)) -> s(proper(X)) 64.85/17.63 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(head(X)) -> head(proper(X)) 64.85/17.63 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.63 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.63 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.63 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.63 proper(nil) -> ok(nil) 64.85/17.63 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.63 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.63 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.63 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.63 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(fst(X)) -> fst(proper(X)) 64.85/17.63 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.63 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.63 proper(U43(X)) -> U43(proper(X)) 64.85/17.63 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.63 proper(U53(X)) -> U53(proper(X)) 64.85/17.63 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.63 proper(U62(X)) -> U62(proper(X)) 64.85/17.63 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.63 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.63 proper(U72(X)) -> U72(proper(X)) 64.85/17.63 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.63 proper(U82(X)) -> U82(proper(X)) 64.85/17.63 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.63 proper(U92(X)) -> U92(proper(X)) 64.85/17.63 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.63 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.63 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.63 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.63 proper(tail(X)) -> tail(proper(X)) 64.85/17.63 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.63 proper(0') -> ok(0') 64.85/17.63 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.63 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.63 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.63 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.63 U103(ok(X)) -> ok(U103(X)) 64.85/17.63 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.63 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.63 snd(ok(X)) -> ok(snd(X)) 64.85/17.63 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.63 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.63 U112(ok(X)) -> ok(U112(X)) 64.85/17.63 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.63 U122(ok(X)) -> ok(U122(X)) 64.85/17.63 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.63 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.63 U133(ok(X)) -> ok(U133(X)) 64.85/17.63 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.63 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.63 U143(ok(X)) -> ok(U143(X)) 64.85/17.63 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.63 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.63 U153(ok(X)) -> ok(U153(X)) 64.85/17.63 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.63 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.63 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.63 s(ok(X)) -> ok(s(X)) 64.85/17.63 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.63 head(ok(X)) -> ok(head(X)) 64.85/17.63 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.63 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.63 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.63 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.63 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.63 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.63 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.63 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.63 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.63 fst(ok(X)) -> ok(fst(X)) 64.85/17.63 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.63 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.63 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.63 U43(ok(X)) -> ok(U43(X)) 64.85/17.63 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.63 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.63 U53(ok(X)) -> ok(U53(X)) 64.85/17.63 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.63 U62(ok(X)) -> ok(U62(X)) 64.85/17.63 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.63 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.63 U72(ok(X)) -> ok(U72(X)) 64.85/17.63 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.63 U82(ok(X)) -> ok(U82(X)) 64.85/17.63 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.63 U92(ok(X)) -> ok(U92(X)) 64.85/17.63 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.63 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.63 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.63 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.63 tail(ok(X)) -> ok(tail(X)) 64.85/17.63 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.63 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.63 top(mark(X)) -> top(proper(X)) 64.85/17.63 top(ok(X)) -> top(active(X)) 64.85/17.63 64.85/17.63 Types: 64.85/17.63 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tt :: tt:mark:nil:0':ok 64.85/17.63 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 nil :: tt:mark:nil:0':ok 64.85/17.63 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 0' :: tt:mark:nil:0':ok 64.85/17.63 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 top :: tt:mark:nil:0':ok -> top 64.85/17.63 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.63 hole_top2_0 :: top 64.85/17.63 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.63 64.85/17.63 64.85/17.63 Lemmas: 64.85/17.63 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.63 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.63 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.63 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.63 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.63 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.63 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.63 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.63 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.63 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.63 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.63 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.63 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.63 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.63 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.63 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.63 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.63 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.63 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.63 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.63 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.63 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.63 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.63 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.63 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.63 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.63 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.63 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.63 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.63 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.63 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.63 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.63 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.63 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.63 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.63 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.63 64.85/17.63 64.85/17.63 Generator Equations: 64.85/17.63 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.63 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.63 64.85/17.63 64.85/17.63 The following defined symbols remain to be analysed: 64.85/17.63 U81, active, U91, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.63 64.85/17.63 They will be analysed ascendingly in the following order: 64.85/17.63 U81 < active 64.85/17.63 U91 < active 64.85/17.63 U101 < active 64.85/17.63 U111 < active 64.85/17.63 U121 < active 64.85/17.63 U131 < active 64.85/17.63 U141 < active 64.85/17.63 U151 < active 64.85/17.63 U161 < active 64.85/17.63 U171 < active 64.85/17.63 U181 < active 64.85/17.63 U191 < active 64.85/17.63 U201 < active 64.85/17.63 U211 < active 64.85/17.63 U221 < active 64.85/17.63 tail < active 64.85/17.63 take < active 64.85/17.63 sel < active 64.85/17.63 active < top 64.85/17.63 U81 < proper 64.85/17.63 U91 < proper 64.85/17.63 U101 < proper 64.85/17.63 U111 < proper 64.85/17.63 U121 < proper 64.85/17.63 U131 < proper 64.85/17.63 U141 < proper 64.85/17.63 U151 < proper 64.85/17.63 U161 < proper 64.85/17.63 U171 < proper 64.85/17.63 U181 < proper 64.85/17.63 U191 < proper 64.85/17.63 U201 < proper 64.85/17.63 U211 < proper 64.85/17.63 U221 < proper 64.85/17.63 tail < proper 64.85/17.63 take < proper 64.85/17.63 sel < proper 64.85/17.63 proper < top 64.85/17.63 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (101) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.63 Proved the following rewrite lemma: 64.85/17.63 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.63 64.85/17.63 Induction Base: 64.85/17.63 U81(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.85/17.63 64.85/17.63 Induction Step: 64.85/17.63 U81(gen_tt:mark:nil:0':ok3_0(+(1, +(n267675_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.85/17.63 mark(U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.85/17.63 mark(*4_0) 64.85/17.63 64.85/17.63 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (102) 64.85/17.63 Obligation: 64.85/17.63 TRS: 64.85/17.63 Rules: 64.85/17.63 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.63 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.63 active(U103(tt)) -> mark(tt) 64.85/17.63 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.63 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.63 active(U112(tt)) -> mark(tt) 64.85/17.63 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.63 active(U122(tt)) -> mark(tt) 64.85/17.63 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.63 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.63 active(U133(tt)) -> mark(tt) 64.85/17.63 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.63 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.63 active(U143(tt)) -> mark(tt) 64.85/17.63 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.63 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.63 active(U153(tt)) -> mark(tt) 64.85/17.63 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.63 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.63 active(U181(tt, Y)) -> mark(Y) 64.85/17.63 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.63 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.63 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.63 active(U21(tt, X)) -> mark(X) 64.85/17.63 active(U211(tt, XS)) -> mark(XS) 64.85/17.63 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.63 active(U31(tt, N)) -> mark(N) 64.85/17.63 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.63 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.63 active(U43(tt)) -> mark(tt) 64.85/17.63 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.63 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.63 active(U53(tt)) -> mark(tt) 64.85/17.63 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.63 active(U62(tt)) -> mark(tt) 64.85/17.63 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.63 active(U72(tt)) -> mark(tt) 64.85/17.63 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.63 active(U82(tt)) -> mark(tt) 64.85/17.63 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.63 active(U92(tt)) -> mark(tt) 64.85/17.63 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(and(tt, X)) -> mark(X) 64.85/17.63 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.63 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.63 active(isLNat(nil)) -> mark(tt) 64.85/17.63 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.63 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.63 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNatKind(nil)) -> mark(tt) 64.85/17.63 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isNatural(0')) -> mark(tt) 64.85/17.63 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.63 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.63 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isNaturalKind(0')) -> mark(tt) 64.85/17.63 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.63 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.63 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.63 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.63 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.63 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.63 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.63 active(U103(X)) -> U103(active(X)) 64.85/17.63 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.63 active(snd(X)) -> snd(active(X)) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.63 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.63 active(U112(X)) -> U112(active(X)) 64.85/17.63 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.63 active(U122(X)) -> U122(active(X)) 64.85/17.63 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.63 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.63 active(U133(X)) -> U133(active(X)) 64.85/17.63 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.63 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.63 active(U143(X)) -> U143(active(X)) 64.85/17.63 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.63 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.63 active(U153(X)) -> U153(active(X)) 64.85/17.63 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.63 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.63 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.63 active(s(X)) -> s(active(X)) 64.85/17.63 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.63 active(head(X)) -> head(active(X)) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.63 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.63 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.63 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.63 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.63 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.63 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.63 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.63 active(fst(X)) -> fst(active(X)) 64.85/17.63 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.63 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.63 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.63 active(U43(X)) -> U43(active(X)) 64.85/17.63 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.63 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.63 active(U53(X)) -> U53(active(X)) 64.85/17.63 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.63 active(U62(X)) -> U62(active(X)) 64.85/17.63 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.63 active(U72(X)) -> U72(active(X)) 64.85/17.63 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.63 active(U82(X)) -> U82(active(X)) 64.85/17.63 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.63 active(U92(X)) -> U92(active(X)) 64.85/17.63 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.63 active(tail(X)) -> tail(active(X)) 64.85/17.63 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.63 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.63 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.63 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.63 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.63 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.63 U103(mark(X)) -> mark(U103(X)) 64.85/17.63 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.63 snd(mark(X)) -> mark(snd(X)) 64.85/17.63 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.63 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.63 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.63 U112(mark(X)) -> mark(U112(X)) 64.85/17.63 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.63 U122(mark(X)) -> mark(U122(X)) 64.85/17.63 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.63 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.63 U133(mark(X)) -> mark(U133(X)) 64.85/17.63 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.63 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.63 U143(mark(X)) -> mark(U143(X)) 64.85/17.63 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.63 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.63 U153(mark(X)) -> mark(U153(X)) 64.85/17.63 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.63 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.63 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.63 s(mark(X)) -> mark(s(X)) 64.85/17.63 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.63 head(mark(X)) -> mark(head(X)) 64.85/17.63 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.63 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.63 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.63 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.63 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.63 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.63 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.63 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.63 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.63 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.63 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.63 fst(mark(X)) -> mark(fst(X)) 64.85/17.63 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.63 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.63 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.63 U43(mark(X)) -> mark(U43(X)) 64.85/17.63 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.63 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.63 U53(mark(X)) -> mark(U53(X)) 64.85/17.63 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.63 U62(mark(X)) -> mark(U62(X)) 64.85/17.63 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.63 U72(mark(X)) -> mark(U72(X)) 64.85/17.63 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.63 U82(mark(X)) -> mark(U82(X)) 64.85/17.63 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.63 U92(mark(X)) -> mark(U92(X)) 64.85/17.63 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.63 tail(mark(X)) -> mark(tail(X)) 64.85/17.63 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.63 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.63 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.63 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.63 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(tt) -> ok(tt) 64.85/17.63 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.63 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.63 proper(U103(X)) -> U103(proper(X)) 64.85/17.63 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.63 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(snd(X)) -> snd(proper(X)) 64.85/17.63 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.63 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.63 proper(U112(X)) -> U112(proper(X)) 64.85/17.63 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.63 proper(U122(X)) -> U122(proper(X)) 64.85/17.63 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.63 proper(U133(X)) -> U133(proper(X)) 64.85/17.63 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.63 proper(U143(X)) -> U143(proper(X)) 64.85/17.63 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.63 proper(U153(X)) -> U153(proper(X)) 64.85/17.63 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.63 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.63 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.63 proper(s(X)) -> s(proper(X)) 64.85/17.63 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(head(X)) -> head(proper(X)) 64.85/17.63 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.63 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.63 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.63 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.63 proper(nil) -> ok(nil) 64.85/17.63 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.63 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.63 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.63 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.63 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(fst(X)) -> fst(proper(X)) 64.85/17.63 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.63 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.63 proper(U43(X)) -> U43(proper(X)) 64.85/17.63 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.63 proper(U53(X)) -> U53(proper(X)) 64.85/17.63 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.63 proper(U62(X)) -> U62(proper(X)) 64.85/17.63 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.63 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.63 proper(U72(X)) -> U72(proper(X)) 64.85/17.63 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.63 proper(U82(X)) -> U82(proper(X)) 64.85/17.63 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.63 proper(U92(X)) -> U92(proper(X)) 64.85/17.63 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.63 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.63 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.63 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.63 proper(tail(X)) -> tail(proper(X)) 64.85/17.63 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.63 proper(0') -> ok(0') 64.85/17.63 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.63 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.63 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.63 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.63 U103(ok(X)) -> ok(U103(X)) 64.85/17.63 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.63 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.63 snd(ok(X)) -> ok(snd(X)) 64.85/17.63 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.63 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.63 U112(ok(X)) -> ok(U112(X)) 64.85/17.63 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.63 U122(ok(X)) -> ok(U122(X)) 64.85/17.63 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.63 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.63 U133(ok(X)) -> ok(U133(X)) 64.85/17.63 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.63 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.63 U143(ok(X)) -> ok(U143(X)) 64.85/17.63 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.63 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.63 U153(ok(X)) -> ok(U153(X)) 64.85/17.63 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.63 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.63 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.63 s(ok(X)) -> ok(s(X)) 64.85/17.63 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.63 head(ok(X)) -> ok(head(X)) 64.85/17.63 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.63 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.63 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.63 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.63 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.63 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.63 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.63 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.63 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.63 fst(ok(X)) -> ok(fst(X)) 64.85/17.63 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.63 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.63 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.63 U43(ok(X)) -> ok(U43(X)) 64.85/17.63 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.63 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.63 U53(ok(X)) -> ok(U53(X)) 64.85/17.63 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.63 U62(ok(X)) -> ok(U62(X)) 64.85/17.63 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.63 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.63 U72(ok(X)) -> ok(U72(X)) 64.85/17.63 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.63 U82(ok(X)) -> ok(U82(X)) 64.85/17.63 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.63 U92(ok(X)) -> ok(U92(X)) 64.85/17.63 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.63 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.63 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.63 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.63 tail(ok(X)) -> ok(tail(X)) 64.85/17.63 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.63 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.63 top(mark(X)) -> top(proper(X)) 64.85/17.63 top(ok(X)) -> top(active(X)) 64.85/17.63 64.85/17.63 Types: 64.85/17.63 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tt :: tt:mark:nil:0':ok 64.85/17.63 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 nil :: tt:mark:nil:0':ok 64.85/17.63 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 0' :: tt:mark:nil:0':ok 64.85/17.63 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 top :: tt:mark:nil:0':ok -> top 64.85/17.63 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.63 hole_top2_0 :: top 64.85/17.63 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.63 64.85/17.63 64.85/17.63 Lemmas: 64.85/17.63 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.63 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.63 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.63 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.63 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.63 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.63 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.63 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.63 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.63 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.63 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.63 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.63 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.63 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.63 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.63 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.63 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.63 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.63 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.63 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.63 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.63 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.63 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.63 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.63 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.63 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.63 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.63 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.63 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.63 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.63 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.63 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.63 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.63 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.63 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.63 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.63 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.63 64.85/17.63 64.85/17.63 Generator Equations: 64.85/17.63 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.63 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.63 64.85/17.63 64.85/17.63 The following defined symbols remain to be analysed: 64.85/17.63 U91, active, U101, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.63 64.85/17.63 They will be analysed ascendingly in the following order: 64.85/17.63 U91 < active 64.85/17.63 U101 < active 64.85/17.63 U111 < active 64.85/17.63 U121 < active 64.85/17.63 U131 < active 64.85/17.63 U141 < active 64.85/17.63 U151 < active 64.85/17.63 U161 < active 64.85/17.63 U171 < active 64.85/17.63 U181 < active 64.85/17.63 U191 < active 64.85/17.63 U201 < active 64.85/17.63 U211 < active 64.85/17.63 U221 < active 64.85/17.63 tail < active 64.85/17.63 take < active 64.85/17.63 sel < active 64.85/17.63 active < top 64.85/17.63 U91 < proper 64.85/17.63 U101 < proper 64.85/17.63 U111 < proper 64.85/17.63 U121 < proper 64.85/17.63 U131 < proper 64.85/17.63 U141 < proper 64.85/17.63 U151 < proper 64.85/17.63 U161 < proper 64.85/17.63 U171 < proper 64.85/17.63 U181 < proper 64.85/17.63 U191 < proper 64.85/17.63 U201 < proper 64.85/17.63 U211 < proper 64.85/17.63 U221 < proper 64.85/17.63 tail < proper 64.85/17.63 take < proper 64.85/17.63 sel < proper 64.85/17.63 proper < top 64.85/17.63 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (103) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.63 Proved the following rewrite lemma: 64.85/17.63 U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n282276_0) 64.85/17.63 64.85/17.63 Induction Base: 64.85/17.63 U91(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.85/17.63 64.85/17.63 Induction Step: 64.85/17.63 U91(gen_tt:mark:nil:0':ok3_0(+(1, +(n282276_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.85/17.63 mark(U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.85/17.63 mark(*4_0) 64.85/17.63 64.85/17.63 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (104) 64.85/17.63 Obligation: 64.85/17.63 TRS: 64.85/17.63 Rules: 64.85/17.63 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.63 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.63 active(U103(tt)) -> mark(tt) 64.85/17.63 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.63 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.63 active(U112(tt)) -> mark(tt) 64.85/17.63 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.63 active(U122(tt)) -> mark(tt) 64.85/17.63 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.63 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.63 active(U133(tt)) -> mark(tt) 64.85/17.63 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.63 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.63 active(U143(tt)) -> mark(tt) 64.85/17.63 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.63 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.63 active(U153(tt)) -> mark(tt) 64.85/17.63 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.63 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.63 active(U181(tt, Y)) -> mark(Y) 64.85/17.63 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.63 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.63 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.63 active(U21(tt, X)) -> mark(X) 64.85/17.63 active(U211(tt, XS)) -> mark(XS) 64.85/17.63 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.63 active(U31(tt, N)) -> mark(N) 64.85/17.63 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.63 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.63 active(U43(tt)) -> mark(tt) 64.85/17.63 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.63 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.63 active(U53(tt)) -> mark(tt) 64.85/17.63 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.63 active(U62(tt)) -> mark(tt) 64.85/17.63 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.63 active(U72(tt)) -> mark(tt) 64.85/17.63 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.63 active(U82(tt)) -> mark(tt) 64.85/17.63 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.63 active(U92(tt)) -> mark(tt) 64.85/17.63 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(and(tt, X)) -> mark(X) 64.85/17.63 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.63 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.63 active(isLNat(nil)) -> mark(tt) 64.85/17.63 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.63 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.63 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNatKind(nil)) -> mark(tt) 64.85/17.63 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isNatural(0')) -> mark(tt) 64.85/17.63 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.63 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.63 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isNaturalKind(0')) -> mark(tt) 64.85/17.63 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.63 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.63 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.63 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.63 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.63 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.63 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.63 active(U103(X)) -> U103(active(X)) 64.85/17.63 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.63 active(snd(X)) -> snd(active(X)) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.63 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.63 active(U112(X)) -> U112(active(X)) 64.85/17.63 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.63 active(U122(X)) -> U122(active(X)) 64.85/17.63 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.63 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.63 active(U133(X)) -> U133(active(X)) 64.85/17.63 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.63 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.63 active(U143(X)) -> U143(active(X)) 64.85/17.63 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.63 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.63 active(U153(X)) -> U153(active(X)) 64.85/17.63 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.63 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.63 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.63 active(s(X)) -> s(active(X)) 64.85/17.63 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.63 active(head(X)) -> head(active(X)) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.63 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.63 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.63 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.63 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.63 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.63 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.63 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.63 active(fst(X)) -> fst(active(X)) 64.85/17.63 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.63 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.63 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.63 active(U43(X)) -> U43(active(X)) 64.85/17.63 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.63 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.63 active(U53(X)) -> U53(active(X)) 64.85/17.63 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.63 active(U62(X)) -> U62(active(X)) 64.85/17.63 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.63 active(U72(X)) -> U72(active(X)) 64.85/17.63 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.63 active(U82(X)) -> U82(active(X)) 64.85/17.63 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.63 active(U92(X)) -> U92(active(X)) 64.85/17.63 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.63 active(tail(X)) -> tail(active(X)) 64.85/17.63 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.63 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.63 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.63 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.63 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.63 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.63 U103(mark(X)) -> mark(U103(X)) 64.85/17.63 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.63 snd(mark(X)) -> mark(snd(X)) 64.85/17.63 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.63 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.63 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.63 U112(mark(X)) -> mark(U112(X)) 64.85/17.63 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.63 U122(mark(X)) -> mark(U122(X)) 64.85/17.63 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.63 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.63 U133(mark(X)) -> mark(U133(X)) 64.85/17.63 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.63 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.63 U143(mark(X)) -> mark(U143(X)) 64.85/17.63 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.63 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.63 U153(mark(X)) -> mark(U153(X)) 64.85/17.63 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.63 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.63 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.63 s(mark(X)) -> mark(s(X)) 64.85/17.63 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.63 head(mark(X)) -> mark(head(X)) 64.85/17.63 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.63 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.63 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.63 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.63 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.63 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.63 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.63 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.63 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.63 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.63 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.63 fst(mark(X)) -> mark(fst(X)) 64.85/17.63 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.63 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.63 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.63 U43(mark(X)) -> mark(U43(X)) 64.85/17.63 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.63 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.63 U53(mark(X)) -> mark(U53(X)) 64.85/17.63 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.63 U62(mark(X)) -> mark(U62(X)) 64.85/17.63 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.63 U72(mark(X)) -> mark(U72(X)) 64.85/17.63 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.63 U82(mark(X)) -> mark(U82(X)) 64.85/17.63 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.63 U92(mark(X)) -> mark(U92(X)) 64.85/17.63 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.63 tail(mark(X)) -> mark(tail(X)) 64.85/17.63 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.63 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.63 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.63 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.63 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(tt) -> ok(tt) 64.85/17.63 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.63 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.63 proper(U103(X)) -> U103(proper(X)) 64.85/17.63 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.63 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(snd(X)) -> snd(proper(X)) 64.85/17.63 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.63 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.63 proper(U112(X)) -> U112(proper(X)) 64.85/17.63 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.63 proper(U122(X)) -> U122(proper(X)) 64.85/17.63 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.63 proper(U133(X)) -> U133(proper(X)) 64.85/17.63 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.63 proper(U143(X)) -> U143(proper(X)) 64.85/17.63 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.63 proper(U153(X)) -> U153(proper(X)) 64.85/17.63 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.63 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.63 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.63 proper(s(X)) -> s(proper(X)) 64.85/17.63 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(head(X)) -> head(proper(X)) 64.85/17.63 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.63 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.63 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.63 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.63 proper(nil) -> ok(nil) 64.85/17.63 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.63 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.63 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.63 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.63 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(fst(X)) -> fst(proper(X)) 64.85/17.63 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.63 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.63 proper(U43(X)) -> U43(proper(X)) 64.85/17.63 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.63 proper(U53(X)) -> U53(proper(X)) 64.85/17.63 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.63 proper(U62(X)) -> U62(proper(X)) 64.85/17.63 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.63 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.63 proper(U72(X)) -> U72(proper(X)) 64.85/17.63 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.63 proper(U82(X)) -> U82(proper(X)) 64.85/17.63 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.63 proper(U92(X)) -> U92(proper(X)) 64.85/17.63 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.63 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.63 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.63 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.63 proper(tail(X)) -> tail(proper(X)) 64.85/17.63 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.63 proper(0') -> ok(0') 64.85/17.63 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.63 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.63 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.63 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.63 U103(ok(X)) -> ok(U103(X)) 64.85/17.63 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.63 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.63 snd(ok(X)) -> ok(snd(X)) 64.85/17.63 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.63 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.63 U112(ok(X)) -> ok(U112(X)) 64.85/17.63 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.63 U122(ok(X)) -> ok(U122(X)) 64.85/17.63 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.63 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.63 U133(ok(X)) -> ok(U133(X)) 64.85/17.63 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.63 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.63 U143(ok(X)) -> ok(U143(X)) 64.85/17.63 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.63 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.63 U153(ok(X)) -> ok(U153(X)) 64.85/17.63 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.63 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.63 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.63 s(ok(X)) -> ok(s(X)) 64.85/17.63 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.63 head(ok(X)) -> ok(head(X)) 64.85/17.63 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.63 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.63 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.63 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.63 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.63 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.63 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.63 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.63 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.63 fst(ok(X)) -> ok(fst(X)) 64.85/17.63 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.63 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.63 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.63 U43(ok(X)) -> ok(U43(X)) 64.85/17.63 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.63 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.63 U53(ok(X)) -> ok(U53(X)) 64.85/17.63 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.63 U62(ok(X)) -> ok(U62(X)) 64.85/17.63 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.63 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.63 U72(ok(X)) -> ok(U72(X)) 64.85/17.63 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.63 U82(ok(X)) -> ok(U82(X)) 64.85/17.63 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.63 U92(ok(X)) -> ok(U92(X)) 64.85/17.63 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.63 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.63 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.63 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.63 tail(ok(X)) -> ok(tail(X)) 64.85/17.63 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.63 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.63 top(mark(X)) -> top(proper(X)) 64.85/17.63 top(ok(X)) -> top(active(X)) 64.85/17.63 64.85/17.63 Types: 64.85/17.63 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tt :: tt:mark:nil:0':ok 64.85/17.63 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 nil :: tt:mark:nil:0':ok 64.85/17.63 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 0' :: tt:mark:nil:0':ok 64.85/17.63 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 top :: tt:mark:nil:0':ok -> top 64.85/17.63 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.63 hole_top2_0 :: top 64.85/17.63 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.63 64.85/17.63 64.85/17.63 Lemmas: 64.85/17.63 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.63 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.63 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.63 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.63 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.63 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.63 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.63 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.63 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.63 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.63 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.63 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.63 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.63 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.63 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.63 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.63 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.63 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.63 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.63 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.63 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.63 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.63 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.63 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.63 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.63 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.63 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.63 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.63 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.63 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.63 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.63 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.63 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.63 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.63 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.63 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.63 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.63 U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n282276_0) 64.85/17.63 64.85/17.63 64.85/17.63 Generator Equations: 64.85/17.63 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.63 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.63 64.85/17.63 64.85/17.63 The following defined symbols remain to be analysed: 64.85/17.63 U101, active, U111, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.63 64.85/17.63 They will be analysed ascendingly in the following order: 64.85/17.63 U101 < active 64.85/17.63 U111 < active 64.85/17.63 U121 < active 64.85/17.63 U131 < active 64.85/17.63 U141 < active 64.85/17.63 U151 < active 64.85/17.63 U161 < active 64.85/17.63 U171 < active 64.85/17.63 U181 < active 64.85/17.63 U191 < active 64.85/17.63 U201 < active 64.85/17.63 U211 < active 64.85/17.63 U221 < active 64.85/17.63 tail < active 64.85/17.63 take < active 64.85/17.63 sel < active 64.85/17.63 active < top 64.85/17.63 U101 < proper 64.85/17.63 U111 < proper 64.85/17.63 U121 < proper 64.85/17.63 U131 < proper 64.85/17.63 U141 < proper 64.85/17.63 U151 < proper 64.85/17.63 U161 < proper 64.85/17.63 U171 < proper 64.85/17.63 U181 < proper 64.85/17.63 U191 < proper 64.85/17.63 U201 < proper 64.85/17.63 U211 < proper 64.85/17.63 U221 < proper 64.85/17.63 tail < proper 64.85/17.63 take < proper 64.85/17.63 sel < proper 64.85/17.63 proper < top 64.85/17.63 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (105) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.63 Proved the following rewrite lemma: 64.85/17.63 U101(gen_tt:mark:nil:0':ok3_0(+(1, n297183_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n297183_0) 64.85/17.63 64.85/17.63 Induction Base: 64.85/17.63 U101(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) 64.85/17.63 64.85/17.63 Induction Step: 64.85/17.63 U101(gen_tt:mark:nil:0':ok3_0(+(1, +(n297183_0, 1))), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) ->_R^Omega(1) 64.85/17.63 mark(U101(gen_tt:mark:nil:0':ok3_0(+(1, n297183_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c))) ->_IH 64.85/17.63 mark(*4_0) 64.85/17.63 64.85/17.63 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.63 ---------------------------------------- 64.85/17.63 64.85/17.63 (106) 64.85/17.63 Obligation: 64.85/17.63 TRS: 64.85/17.63 Rules: 64.85/17.63 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.63 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.63 active(U103(tt)) -> mark(tt) 64.85/17.63 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.63 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.63 active(U112(tt)) -> mark(tt) 64.85/17.63 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.63 active(U122(tt)) -> mark(tt) 64.85/17.63 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.63 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.63 active(U133(tt)) -> mark(tt) 64.85/17.63 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.63 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.63 active(U143(tt)) -> mark(tt) 64.85/17.63 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.63 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.63 active(U153(tt)) -> mark(tt) 64.85/17.63 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.63 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.63 active(U181(tt, Y)) -> mark(Y) 64.85/17.63 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.63 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.63 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.63 active(U21(tt, X)) -> mark(X) 64.85/17.63 active(U211(tt, XS)) -> mark(XS) 64.85/17.63 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.63 active(U31(tt, N)) -> mark(N) 64.85/17.63 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.63 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.63 active(U43(tt)) -> mark(tt) 64.85/17.63 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.63 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.63 active(U53(tt)) -> mark(tt) 64.85/17.63 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.63 active(U62(tt)) -> mark(tt) 64.85/17.63 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.63 active(U72(tt)) -> mark(tt) 64.85/17.63 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.63 active(U82(tt)) -> mark(tt) 64.85/17.63 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.63 active(U92(tt)) -> mark(tt) 64.85/17.63 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(and(tt, X)) -> mark(X) 64.85/17.63 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.63 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.63 active(isLNat(nil)) -> mark(tt) 64.85/17.63 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.63 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.63 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.63 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isLNatKind(nil)) -> mark(tt) 64.85/17.63 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.63 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isNatural(0')) -> mark(tt) 64.85/17.63 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.63 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.63 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isNaturalKind(0')) -> mark(tt) 64.85/17.63 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.63 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.63 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.63 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.63 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.63 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.63 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.63 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.63 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.63 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.63 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.63 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.63 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.63 active(U103(X)) -> U103(active(X)) 64.85/17.63 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.63 active(snd(X)) -> snd(active(X)) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.63 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.63 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.63 active(U112(X)) -> U112(active(X)) 64.85/17.63 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.63 active(U122(X)) -> U122(active(X)) 64.85/17.63 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.63 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.63 active(U133(X)) -> U133(active(X)) 64.85/17.63 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.63 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.63 active(U143(X)) -> U143(active(X)) 64.85/17.63 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.63 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.63 active(U153(X)) -> U153(active(X)) 64.85/17.63 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.63 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.63 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.63 active(s(X)) -> s(active(X)) 64.85/17.63 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.63 active(head(X)) -> head(active(X)) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.63 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.63 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.63 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.63 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.63 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.63 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.63 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.63 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.63 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.63 active(fst(X)) -> fst(active(X)) 64.85/17.63 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.63 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.63 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.63 active(U43(X)) -> U43(active(X)) 64.85/17.63 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.63 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.63 active(U53(X)) -> U53(active(X)) 64.85/17.63 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.63 active(U62(X)) -> U62(active(X)) 64.85/17.63 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.63 active(U72(X)) -> U72(active(X)) 64.85/17.63 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.63 active(U82(X)) -> U82(active(X)) 64.85/17.63 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.63 active(U92(X)) -> U92(active(X)) 64.85/17.63 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.63 active(tail(X)) -> tail(active(X)) 64.85/17.63 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.63 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.63 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.63 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.63 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.63 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.63 U103(mark(X)) -> mark(U103(X)) 64.85/17.63 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.63 snd(mark(X)) -> mark(snd(X)) 64.85/17.63 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.63 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.63 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.63 U112(mark(X)) -> mark(U112(X)) 64.85/17.63 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.63 U122(mark(X)) -> mark(U122(X)) 64.85/17.63 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.63 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.63 U133(mark(X)) -> mark(U133(X)) 64.85/17.63 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.63 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.63 U143(mark(X)) -> mark(U143(X)) 64.85/17.63 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.63 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.63 U153(mark(X)) -> mark(U153(X)) 64.85/17.63 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.63 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.63 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.63 s(mark(X)) -> mark(s(X)) 64.85/17.63 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.63 head(mark(X)) -> mark(head(X)) 64.85/17.63 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.63 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.63 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.63 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.63 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.63 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.63 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.63 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.63 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.63 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.63 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.63 fst(mark(X)) -> mark(fst(X)) 64.85/17.63 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.63 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.63 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.63 U43(mark(X)) -> mark(U43(X)) 64.85/17.63 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.63 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.63 U53(mark(X)) -> mark(U53(X)) 64.85/17.63 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.63 U62(mark(X)) -> mark(U62(X)) 64.85/17.63 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.63 U72(mark(X)) -> mark(U72(X)) 64.85/17.63 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.63 U82(mark(X)) -> mark(U82(X)) 64.85/17.63 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.63 U92(mark(X)) -> mark(U92(X)) 64.85/17.63 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.63 tail(mark(X)) -> mark(tail(X)) 64.85/17.63 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.63 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.63 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.63 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.63 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(tt) -> ok(tt) 64.85/17.63 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.63 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.63 proper(U103(X)) -> U103(proper(X)) 64.85/17.63 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.63 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(snd(X)) -> snd(proper(X)) 64.85/17.63 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.63 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.63 proper(U112(X)) -> U112(proper(X)) 64.85/17.63 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.63 proper(U122(X)) -> U122(proper(X)) 64.85/17.63 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.63 proper(U133(X)) -> U133(proper(X)) 64.85/17.63 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.63 proper(U143(X)) -> U143(proper(X)) 64.85/17.63 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.63 proper(U153(X)) -> U153(proper(X)) 64.85/17.63 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.63 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.63 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.63 proper(s(X)) -> s(proper(X)) 64.85/17.63 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(head(X)) -> head(proper(X)) 64.85/17.63 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.63 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.63 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.63 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.63 proper(nil) -> ok(nil) 64.85/17.63 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.63 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.63 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.63 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.63 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(fst(X)) -> fst(proper(X)) 64.85/17.63 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.63 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.63 proper(U43(X)) -> U43(proper(X)) 64.85/17.63 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.63 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.63 proper(U53(X)) -> U53(proper(X)) 64.85/17.63 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.63 proper(U62(X)) -> U62(proper(X)) 64.85/17.63 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.63 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.63 proper(U72(X)) -> U72(proper(X)) 64.85/17.63 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.63 proper(U82(X)) -> U82(proper(X)) 64.85/17.63 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.63 proper(U92(X)) -> U92(proper(X)) 64.85/17.63 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.63 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.63 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.63 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.63 proper(tail(X)) -> tail(proper(X)) 64.85/17.63 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.63 proper(0') -> ok(0') 64.85/17.63 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.63 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.63 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.63 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.63 U103(ok(X)) -> ok(U103(X)) 64.85/17.63 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.63 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.63 snd(ok(X)) -> ok(snd(X)) 64.85/17.63 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.63 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.63 U112(ok(X)) -> ok(U112(X)) 64.85/17.63 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.63 U122(ok(X)) -> ok(U122(X)) 64.85/17.63 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.63 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.63 U133(ok(X)) -> ok(U133(X)) 64.85/17.63 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.63 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.63 U143(ok(X)) -> ok(U143(X)) 64.85/17.63 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.63 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.63 U153(ok(X)) -> ok(U153(X)) 64.85/17.63 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.63 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.63 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.63 s(ok(X)) -> ok(s(X)) 64.85/17.63 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.63 head(ok(X)) -> ok(head(X)) 64.85/17.63 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.63 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.63 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.63 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.63 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.63 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.63 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.63 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.63 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.63 fst(ok(X)) -> ok(fst(X)) 64.85/17.63 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.63 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.63 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.63 U43(ok(X)) -> ok(U43(X)) 64.85/17.63 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.63 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.63 U53(ok(X)) -> ok(U53(X)) 64.85/17.63 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.63 U62(ok(X)) -> ok(U62(X)) 64.85/17.63 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.63 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.63 U72(ok(X)) -> ok(U72(X)) 64.85/17.63 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.63 U82(ok(X)) -> ok(U82(X)) 64.85/17.63 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.63 U92(ok(X)) -> ok(U92(X)) 64.85/17.63 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.63 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.63 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.63 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.63 tail(ok(X)) -> ok(tail(X)) 64.85/17.63 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.63 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.63 top(mark(X)) -> top(proper(X)) 64.85/17.63 top(ok(X)) -> top(active(X)) 64.85/17.63 64.85/17.63 Types: 64.85/17.63 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tt :: tt:mark:nil:0':ok 64.85/17.63 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 nil :: tt:mark:nil:0':ok 64.85/17.63 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 0' :: tt:mark:nil:0':ok 64.85/17.63 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.63 top :: tt:mark:nil:0':ok -> top 64.85/17.63 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.63 hole_top2_0 :: top 64.85/17.63 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.63 64.85/17.63 64.85/17.63 Lemmas: 64.85/17.63 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.63 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.63 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.63 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.63 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.63 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.63 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.63 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.63 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.63 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.63 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.63 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.64 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.64 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.64 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.64 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.64 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.64 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.64 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.64 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.64 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.64 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.64 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.64 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.64 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.64 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.64 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.64 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.64 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.64 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.64 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.64 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.64 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.64 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.64 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.64 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.64 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.64 U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n282276_0) 64.85/17.64 U101(gen_tt:mark:nil:0':ok3_0(+(1, n297183_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n297183_0) 64.85/17.64 64.85/17.64 64.85/17.64 Generator Equations: 64.85/17.64 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.64 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.64 64.85/17.64 64.85/17.64 The following defined symbols remain to be analysed: 64.85/17.64 U111, active, U121, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.64 64.85/17.64 They will be analysed ascendingly in the following order: 64.85/17.64 U111 < active 64.85/17.64 U121 < active 64.85/17.64 U131 < active 64.85/17.64 U141 < active 64.85/17.64 U151 < active 64.85/17.64 U161 < active 64.85/17.64 U171 < active 64.85/17.64 U181 < active 64.85/17.64 U191 < active 64.85/17.64 U201 < active 64.85/17.64 U211 < active 64.85/17.64 U221 < active 64.85/17.64 tail < active 64.85/17.64 take < active 64.85/17.64 sel < active 64.85/17.64 active < top 64.85/17.64 U111 < proper 64.85/17.64 U121 < proper 64.85/17.64 U131 < proper 64.85/17.64 U141 < proper 64.85/17.64 U151 < proper 64.85/17.64 U161 < proper 64.85/17.64 U171 < proper 64.85/17.64 U181 < proper 64.85/17.64 U191 < proper 64.85/17.64 U201 < proper 64.85/17.64 U211 < proper 64.85/17.64 U221 < proper 64.85/17.64 tail < proper 64.85/17.64 take < proper 64.85/17.64 sel < proper 64.85/17.64 proper < top 64.85/17.64 64.85/17.64 ---------------------------------------- 64.85/17.64 64.85/17.64 (107) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.64 Proved the following rewrite lemma: 64.85/17.64 U111(gen_tt:mark:nil:0':ok3_0(+(1, n321359_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n321359_0) 64.85/17.64 64.85/17.64 Induction Base: 64.85/17.64 U111(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.85/17.64 64.85/17.64 Induction Step: 64.85/17.64 U111(gen_tt:mark:nil:0':ok3_0(+(1, +(n321359_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.85/17.64 mark(U111(gen_tt:mark:nil:0':ok3_0(+(1, n321359_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.85/17.64 mark(*4_0) 64.85/17.64 64.85/17.64 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.64 ---------------------------------------- 64.85/17.64 64.85/17.64 (108) 64.85/17.64 Obligation: 64.85/17.64 TRS: 64.85/17.64 Rules: 64.85/17.64 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.64 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.64 active(U103(tt)) -> mark(tt) 64.85/17.64 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.64 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.64 active(U112(tt)) -> mark(tt) 64.85/17.64 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.64 active(U122(tt)) -> mark(tt) 64.85/17.64 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.64 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.64 active(U133(tt)) -> mark(tt) 64.85/17.64 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.64 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.64 active(U143(tt)) -> mark(tt) 64.85/17.64 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.64 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.64 active(U153(tt)) -> mark(tt) 64.85/17.64 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.64 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.64 active(U181(tt, Y)) -> mark(Y) 64.85/17.64 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.64 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.64 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.64 active(U21(tt, X)) -> mark(X) 64.85/17.64 active(U211(tt, XS)) -> mark(XS) 64.85/17.64 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.64 active(U31(tt, N)) -> mark(N) 64.85/17.64 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.64 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.64 active(U43(tt)) -> mark(tt) 64.85/17.64 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.64 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.64 active(U53(tt)) -> mark(tt) 64.85/17.64 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.64 active(U62(tt)) -> mark(tt) 64.85/17.64 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.64 active(U72(tt)) -> mark(tt) 64.85/17.64 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.64 active(U82(tt)) -> mark(tt) 64.85/17.64 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.64 active(U92(tt)) -> mark(tt) 64.85/17.64 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(and(tt, X)) -> mark(X) 64.85/17.64 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.64 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.64 active(isLNat(nil)) -> mark(tt) 64.85/17.64 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.64 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.64 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.64 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.64 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNatKind(nil)) -> mark(tt) 64.85/17.64 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.64 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.64 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.64 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.64 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isNatural(0')) -> mark(tt) 64.85/17.64 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.64 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.64 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isNaturalKind(0')) -> mark(tt) 64.85/17.64 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.64 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.64 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.64 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.64 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.64 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.64 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.64 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.64 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.64 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.64 active(U103(X)) -> U103(active(X)) 64.85/17.64 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.64 active(snd(X)) -> snd(active(X)) 64.85/17.64 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.64 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.64 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.64 active(U112(X)) -> U112(active(X)) 64.85/17.64 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.64 active(U122(X)) -> U122(active(X)) 64.85/17.64 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.64 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.64 active(U133(X)) -> U133(active(X)) 64.85/17.64 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.64 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.64 active(U143(X)) -> U143(active(X)) 64.85/17.64 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.64 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.64 active(U153(X)) -> U153(active(X)) 64.85/17.64 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.64 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.64 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.64 active(s(X)) -> s(active(X)) 64.85/17.64 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.64 active(head(X)) -> head(active(X)) 64.85/17.64 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.64 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.64 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.64 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.64 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.64 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.64 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.64 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.64 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.64 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.64 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.64 active(fst(X)) -> fst(active(X)) 64.85/17.64 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.64 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.64 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.64 active(U43(X)) -> U43(active(X)) 64.85/17.64 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.64 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.64 active(U53(X)) -> U53(active(X)) 64.85/17.64 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.64 active(U62(X)) -> U62(active(X)) 64.85/17.64 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.64 active(U72(X)) -> U72(active(X)) 64.85/17.64 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.64 active(U82(X)) -> U82(active(X)) 64.85/17.64 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.64 active(U92(X)) -> U92(active(X)) 64.85/17.64 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.64 active(tail(X)) -> tail(active(X)) 64.85/17.64 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.64 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.64 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.64 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.64 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.64 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.64 U103(mark(X)) -> mark(U103(X)) 64.85/17.64 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.64 snd(mark(X)) -> mark(snd(X)) 64.85/17.64 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.64 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.64 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.64 U112(mark(X)) -> mark(U112(X)) 64.85/17.64 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.64 U122(mark(X)) -> mark(U122(X)) 64.85/17.64 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.64 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.64 U133(mark(X)) -> mark(U133(X)) 64.85/17.64 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.64 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.64 U143(mark(X)) -> mark(U143(X)) 64.85/17.64 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.64 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.64 U153(mark(X)) -> mark(U153(X)) 64.85/17.64 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.64 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.64 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.64 s(mark(X)) -> mark(s(X)) 64.85/17.64 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.64 head(mark(X)) -> mark(head(X)) 64.85/17.64 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.64 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.64 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.64 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.64 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.64 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.64 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.64 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.64 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.64 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.64 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.64 fst(mark(X)) -> mark(fst(X)) 64.85/17.64 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.64 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.64 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.64 U43(mark(X)) -> mark(U43(X)) 64.85/17.64 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.64 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.64 U53(mark(X)) -> mark(U53(X)) 64.85/17.64 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.64 U62(mark(X)) -> mark(U62(X)) 64.85/17.64 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.64 U72(mark(X)) -> mark(U72(X)) 64.85/17.64 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.64 U82(mark(X)) -> mark(U82(X)) 64.85/17.64 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.64 U92(mark(X)) -> mark(U92(X)) 64.85/17.64 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.64 tail(mark(X)) -> mark(tail(X)) 64.85/17.64 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.64 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.64 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.64 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.64 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(tt) -> ok(tt) 64.85/17.64 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.64 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.64 proper(U103(X)) -> U103(proper(X)) 64.85/17.64 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.64 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(snd(X)) -> snd(proper(X)) 64.85/17.64 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.64 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.64 proper(U112(X)) -> U112(proper(X)) 64.85/17.64 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.64 proper(U122(X)) -> U122(proper(X)) 64.85/17.64 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.64 proper(U133(X)) -> U133(proper(X)) 64.85/17.64 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.64 proper(U143(X)) -> U143(proper(X)) 64.85/17.64 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.64 proper(U153(X)) -> U153(proper(X)) 64.85/17.64 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.64 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.64 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.64 proper(s(X)) -> s(proper(X)) 64.85/17.64 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(head(X)) -> head(proper(X)) 64.85/17.64 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.64 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.64 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.64 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.64 proper(nil) -> ok(nil) 64.85/17.64 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.64 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.64 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.64 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.64 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(fst(X)) -> fst(proper(X)) 64.85/17.64 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.64 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.64 proper(U43(X)) -> U43(proper(X)) 64.85/17.64 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.64 proper(U53(X)) -> U53(proper(X)) 64.85/17.64 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.64 proper(U62(X)) -> U62(proper(X)) 64.85/17.64 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.64 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.64 proper(U72(X)) -> U72(proper(X)) 64.85/17.64 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.64 proper(U82(X)) -> U82(proper(X)) 64.85/17.64 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.64 proper(U92(X)) -> U92(proper(X)) 64.85/17.64 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.64 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.64 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.64 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.64 proper(tail(X)) -> tail(proper(X)) 64.85/17.64 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.64 proper(0') -> ok(0') 64.85/17.64 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.64 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.64 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.64 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.64 U103(ok(X)) -> ok(U103(X)) 64.85/17.64 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.64 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.64 snd(ok(X)) -> ok(snd(X)) 64.85/17.64 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.64 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.64 U112(ok(X)) -> ok(U112(X)) 64.85/17.64 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.64 U122(ok(X)) -> ok(U122(X)) 64.85/17.64 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.64 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.64 U133(ok(X)) -> ok(U133(X)) 64.85/17.64 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.64 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.64 U143(ok(X)) -> ok(U143(X)) 64.85/17.64 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.64 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.64 U153(ok(X)) -> ok(U153(X)) 64.85/17.64 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.64 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.64 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.64 s(ok(X)) -> ok(s(X)) 64.85/17.64 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.64 head(ok(X)) -> ok(head(X)) 64.85/17.64 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.64 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.64 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.64 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.64 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.64 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.64 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.64 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.64 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.64 fst(ok(X)) -> ok(fst(X)) 64.85/17.64 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.64 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.64 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.64 U43(ok(X)) -> ok(U43(X)) 64.85/17.64 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.64 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.64 U53(ok(X)) -> ok(U53(X)) 64.85/17.64 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.64 U62(ok(X)) -> ok(U62(X)) 64.85/17.64 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.64 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.64 U72(ok(X)) -> ok(U72(X)) 64.85/17.64 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.64 U82(ok(X)) -> ok(U82(X)) 64.85/17.64 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.64 U92(ok(X)) -> ok(U92(X)) 64.85/17.64 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.64 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.64 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.64 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.64 tail(ok(X)) -> ok(tail(X)) 64.85/17.64 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.64 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.64 top(mark(X)) -> top(proper(X)) 64.85/17.64 top(ok(X)) -> top(active(X)) 64.85/17.64 64.85/17.64 Types: 64.85/17.64 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 tt :: tt:mark:nil:0':ok 64.85/17.64 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 nil :: tt:mark:nil:0':ok 64.85/17.64 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 0' :: tt:mark:nil:0':ok 64.85/17.64 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 top :: tt:mark:nil:0':ok -> top 64.85/17.64 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.64 hole_top2_0 :: top 64.85/17.64 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.64 64.85/17.64 64.85/17.64 Lemmas: 64.85/17.64 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.64 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.64 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.64 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.64 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.64 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.64 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.64 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.64 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.64 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.64 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.64 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.64 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.64 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.64 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.64 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.64 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.64 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.64 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.64 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.64 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.64 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.64 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.64 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.64 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.64 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.64 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.64 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.64 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.64 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.64 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.64 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.64 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.64 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.64 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.64 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.64 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.64 U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n282276_0) 64.85/17.64 U101(gen_tt:mark:nil:0':ok3_0(+(1, n297183_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n297183_0) 64.85/17.64 U111(gen_tt:mark:nil:0':ok3_0(+(1, n321359_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n321359_0) 64.85/17.64 64.85/17.64 64.85/17.64 Generator Equations: 64.85/17.64 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.64 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.64 64.85/17.64 64.85/17.64 The following defined symbols remain to be analysed: 64.85/17.64 U121, active, U131, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.64 64.85/17.64 They will be analysed ascendingly in the following order: 64.85/17.64 U121 < active 64.85/17.64 U131 < active 64.85/17.64 U141 < active 64.85/17.64 U151 < active 64.85/17.64 U161 < active 64.85/17.64 U171 < active 64.85/17.64 U181 < active 64.85/17.64 U191 < active 64.85/17.64 U201 < active 64.85/17.64 U211 < active 64.85/17.64 U221 < active 64.85/17.64 tail < active 64.85/17.64 take < active 64.85/17.64 sel < active 64.85/17.64 active < top 64.85/17.64 U121 < proper 64.85/17.64 U131 < proper 64.85/17.64 U141 < proper 64.85/17.64 U151 < proper 64.85/17.64 U161 < proper 64.85/17.64 U171 < proper 64.85/17.64 U181 < proper 64.85/17.64 U191 < proper 64.85/17.64 U201 < proper 64.85/17.64 U211 < proper 64.85/17.64 U221 < proper 64.85/17.64 tail < proper 64.85/17.64 take < proper 64.85/17.64 sel < proper 64.85/17.64 proper < top 64.85/17.64 64.85/17.64 ---------------------------------------- 64.85/17.64 64.85/17.64 (109) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.64 Proved the following rewrite lemma: 64.85/17.64 U121(gen_tt:mark:nil:0':ok3_0(+(1, n336976_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n336976_0) 64.85/17.64 64.85/17.64 Induction Base: 64.85/17.64 U121(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b)) 64.85/17.64 64.85/17.64 Induction Step: 64.85/17.64 U121(gen_tt:mark:nil:0':ok3_0(+(1, +(n336976_0, 1))), gen_tt:mark:nil:0':ok3_0(b)) ->_R^Omega(1) 64.85/17.64 mark(U121(gen_tt:mark:nil:0':ok3_0(+(1, n336976_0)), gen_tt:mark:nil:0':ok3_0(b))) ->_IH 64.85/17.64 mark(*4_0) 64.85/17.64 64.85/17.64 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.64 ---------------------------------------- 64.85/17.64 64.85/17.64 (110) 64.85/17.64 Obligation: 64.85/17.64 TRS: 64.85/17.64 Rules: 64.85/17.64 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.64 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.64 active(U103(tt)) -> mark(tt) 64.85/17.64 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.64 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.64 active(U112(tt)) -> mark(tt) 64.85/17.64 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.64 active(U122(tt)) -> mark(tt) 64.85/17.64 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.64 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.64 active(U133(tt)) -> mark(tt) 64.85/17.64 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.64 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.64 active(U143(tt)) -> mark(tt) 64.85/17.64 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.64 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.64 active(U153(tt)) -> mark(tt) 64.85/17.64 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.64 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.64 active(U181(tt, Y)) -> mark(Y) 64.85/17.64 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.64 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.64 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.64 active(U21(tt, X)) -> mark(X) 64.85/17.64 active(U211(tt, XS)) -> mark(XS) 64.85/17.64 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.64 active(U31(tt, N)) -> mark(N) 64.85/17.64 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.64 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.64 active(U43(tt)) -> mark(tt) 64.85/17.64 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.64 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.64 active(U53(tt)) -> mark(tt) 64.85/17.64 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.64 active(U62(tt)) -> mark(tt) 64.85/17.64 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.64 active(U72(tt)) -> mark(tt) 64.85/17.64 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.64 active(U82(tt)) -> mark(tt) 64.85/17.64 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.64 active(U92(tt)) -> mark(tt) 64.85/17.64 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(and(tt, X)) -> mark(X) 64.85/17.64 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.64 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.64 active(isLNat(nil)) -> mark(tt) 64.85/17.64 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.64 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.64 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.64 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.64 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNatKind(nil)) -> mark(tt) 64.85/17.64 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.64 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.64 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.64 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.64 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isNatural(0')) -> mark(tt) 64.85/17.64 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.64 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.64 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isNaturalKind(0')) -> mark(tt) 64.85/17.64 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.64 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.64 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.64 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.64 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.64 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.64 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.64 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.64 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.64 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.64 active(U103(X)) -> U103(active(X)) 64.85/17.64 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.64 active(snd(X)) -> snd(active(X)) 64.85/17.64 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.64 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.64 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.64 active(U112(X)) -> U112(active(X)) 64.85/17.64 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.64 active(U122(X)) -> U122(active(X)) 64.85/17.64 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.64 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.64 active(U133(X)) -> U133(active(X)) 64.85/17.64 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.64 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.64 active(U143(X)) -> U143(active(X)) 64.85/17.64 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.64 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.64 active(U153(X)) -> U153(active(X)) 64.85/17.64 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.64 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.64 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.64 active(s(X)) -> s(active(X)) 64.85/17.64 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.64 active(head(X)) -> head(active(X)) 64.85/17.64 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.64 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.64 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.64 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.64 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.64 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.64 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.64 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.64 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.64 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.64 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.64 active(fst(X)) -> fst(active(X)) 64.85/17.64 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.64 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.64 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.64 active(U43(X)) -> U43(active(X)) 64.85/17.64 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.64 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.64 active(U53(X)) -> U53(active(X)) 64.85/17.64 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.64 active(U62(X)) -> U62(active(X)) 64.85/17.64 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.64 active(U72(X)) -> U72(active(X)) 64.85/17.64 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.64 active(U82(X)) -> U82(active(X)) 64.85/17.64 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.64 active(U92(X)) -> U92(active(X)) 64.85/17.64 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.64 active(tail(X)) -> tail(active(X)) 64.85/17.64 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.64 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.64 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.64 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.64 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.64 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.64 U103(mark(X)) -> mark(U103(X)) 64.85/17.64 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.64 snd(mark(X)) -> mark(snd(X)) 64.85/17.64 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.64 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.64 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.64 U112(mark(X)) -> mark(U112(X)) 64.85/17.64 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.64 U122(mark(X)) -> mark(U122(X)) 64.85/17.64 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.64 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.64 U133(mark(X)) -> mark(U133(X)) 64.85/17.64 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.64 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.64 U143(mark(X)) -> mark(U143(X)) 64.85/17.64 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.64 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.64 U153(mark(X)) -> mark(U153(X)) 64.85/17.64 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.64 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.64 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.64 s(mark(X)) -> mark(s(X)) 64.85/17.64 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.64 head(mark(X)) -> mark(head(X)) 64.85/17.64 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.64 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.64 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.64 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.64 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.64 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.64 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.64 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.64 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.64 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.64 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.64 fst(mark(X)) -> mark(fst(X)) 64.85/17.64 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.64 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.64 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.64 U43(mark(X)) -> mark(U43(X)) 64.85/17.64 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.64 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.64 U53(mark(X)) -> mark(U53(X)) 64.85/17.64 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.64 U62(mark(X)) -> mark(U62(X)) 64.85/17.64 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.64 U72(mark(X)) -> mark(U72(X)) 64.85/17.64 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.64 U82(mark(X)) -> mark(U82(X)) 64.85/17.64 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.64 U92(mark(X)) -> mark(U92(X)) 64.85/17.64 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.64 tail(mark(X)) -> mark(tail(X)) 64.85/17.64 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.64 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.64 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.64 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.64 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(tt) -> ok(tt) 64.85/17.64 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.64 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.64 proper(U103(X)) -> U103(proper(X)) 64.85/17.64 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.64 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(snd(X)) -> snd(proper(X)) 64.85/17.64 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.64 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.64 proper(U112(X)) -> U112(proper(X)) 64.85/17.64 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.64 proper(U122(X)) -> U122(proper(X)) 64.85/17.64 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.64 proper(U133(X)) -> U133(proper(X)) 64.85/17.64 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.64 proper(U143(X)) -> U143(proper(X)) 64.85/17.64 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.64 proper(U153(X)) -> U153(proper(X)) 64.85/17.64 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.64 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.64 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.64 proper(s(X)) -> s(proper(X)) 64.85/17.64 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(head(X)) -> head(proper(X)) 64.85/17.64 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.64 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.64 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.64 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.64 proper(nil) -> ok(nil) 64.85/17.64 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.64 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.64 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.64 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.64 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(fst(X)) -> fst(proper(X)) 64.85/17.64 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.64 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.64 proper(U43(X)) -> U43(proper(X)) 64.85/17.64 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.64 proper(U53(X)) -> U53(proper(X)) 64.85/17.64 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.64 proper(U62(X)) -> U62(proper(X)) 64.85/17.64 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.64 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.64 proper(U72(X)) -> U72(proper(X)) 64.85/17.64 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.64 proper(U82(X)) -> U82(proper(X)) 64.85/17.64 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.64 proper(U92(X)) -> U92(proper(X)) 64.85/17.64 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.64 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.64 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.64 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.64 proper(tail(X)) -> tail(proper(X)) 64.85/17.64 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.64 proper(0') -> ok(0') 64.85/17.64 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.64 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.64 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.64 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.64 U103(ok(X)) -> ok(U103(X)) 64.85/17.64 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.64 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.64 snd(ok(X)) -> ok(snd(X)) 64.85/17.64 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.64 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.64 U112(ok(X)) -> ok(U112(X)) 64.85/17.64 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.64 U122(ok(X)) -> ok(U122(X)) 64.85/17.64 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.64 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.64 U133(ok(X)) -> ok(U133(X)) 64.85/17.64 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.64 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.64 U143(ok(X)) -> ok(U143(X)) 64.85/17.64 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.64 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.64 U153(ok(X)) -> ok(U153(X)) 64.85/17.64 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.64 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.64 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.64 s(ok(X)) -> ok(s(X)) 64.85/17.64 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.64 head(ok(X)) -> ok(head(X)) 64.85/17.64 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.64 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.64 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.64 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.64 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.64 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.64 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.64 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.64 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.64 fst(ok(X)) -> ok(fst(X)) 64.85/17.64 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.64 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.64 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.64 U43(ok(X)) -> ok(U43(X)) 64.85/17.64 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.64 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.64 U53(ok(X)) -> ok(U53(X)) 64.85/17.64 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.64 U62(ok(X)) -> ok(U62(X)) 64.85/17.64 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.64 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.64 U72(ok(X)) -> ok(U72(X)) 64.85/17.64 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.64 U82(ok(X)) -> ok(U82(X)) 64.85/17.64 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.64 U92(ok(X)) -> ok(U92(X)) 64.85/17.64 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.64 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.64 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.64 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.64 tail(ok(X)) -> ok(tail(X)) 64.85/17.64 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.64 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.64 top(mark(X)) -> top(proper(X)) 64.85/17.64 top(ok(X)) -> top(active(X)) 64.85/17.64 64.85/17.64 Types: 64.85/17.64 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 tt :: tt:mark:nil:0':ok 64.85/17.64 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 nil :: tt:mark:nil:0':ok 64.85/17.64 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 0' :: tt:mark:nil:0':ok 64.85/17.64 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 top :: tt:mark:nil:0':ok -> top 64.85/17.64 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.64 hole_top2_0 :: top 64.85/17.64 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.64 64.85/17.64 64.85/17.64 Lemmas: 64.85/17.64 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.64 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.64 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.64 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.64 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.64 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.64 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.64 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.64 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.64 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.64 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.64 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.64 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.64 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.64 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.64 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.64 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.64 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.64 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.64 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.64 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.64 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.64 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.64 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.64 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.64 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.64 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.64 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.64 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.64 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.64 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.64 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.64 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.64 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.64 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.64 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.64 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.64 U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n282276_0) 64.85/17.64 U101(gen_tt:mark:nil:0':ok3_0(+(1, n297183_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n297183_0) 64.85/17.64 U111(gen_tt:mark:nil:0':ok3_0(+(1, n321359_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n321359_0) 64.85/17.64 U121(gen_tt:mark:nil:0':ok3_0(+(1, n336976_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n336976_0) 64.85/17.64 64.85/17.64 64.85/17.64 Generator Equations: 64.85/17.64 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.64 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.64 64.85/17.64 64.85/17.64 The following defined symbols remain to be analysed: 64.85/17.64 U131, active, U141, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.64 64.85/17.64 They will be analysed ascendingly in the following order: 64.85/17.64 U131 < active 64.85/17.64 U141 < active 64.85/17.64 U151 < active 64.85/17.64 U161 < active 64.85/17.64 U171 < active 64.85/17.64 U181 < active 64.85/17.64 U191 < active 64.85/17.64 U201 < active 64.85/17.64 U211 < active 64.85/17.64 U221 < active 64.85/17.64 tail < active 64.85/17.64 take < active 64.85/17.64 sel < active 64.85/17.64 active < top 64.85/17.64 U131 < proper 64.85/17.64 U141 < proper 64.85/17.64 U151 < proper 64.85/17.64 U161 < proper 64.85/17.64 U171 < proper 64.85/17.64 U181 < proper 64.85/17.64 U191 < proper 64.85/17.64 U201 < proper 64.85/17.64 U211 < proper 64.85/17.64 U221 < proper 64.85/17.64 tail < proper 64.85/17.64 take < proper 64.85/17.64 sel < proper 64.85/17.64 proper < top 64.85/17.64 64.85/17.64 ---------------------------------------- 64.85/17.64 64.85/17.64 (111) RewriteLemmaProof (LOWER BOUND(ID)) 64.85/17.64 Proved the following rewrite lemma: 64.85/17.64 U131(gen_tt:mark:nil:0':ok3_0(+(1, n352899_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n352899_0) 64.85/17.64 64.85/17.64 Induction Base: 64.85/17.64 U131(gen_tt:mark:nil:0':ok3_0(+(1, 0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) 64.85/17.64 64.85/17.64 Induction Step: 64.85/17.64 U131(gen_tt:mark:nil:0':ok3_0(+(1, +(n352899_0, 1))), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) ->_R^Omega(1) 64.85/17.64 mark(U131(gen_tt:mark:nil:0':ok3_0(+(1, n352899_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c))) ->_IH 64.85/17.64 mark(*4_0) 64.85/17.64 64.85/17.64 We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). 64.85/17.64 ---------------------------------------- 64.85/17.64 64.85/17.64 (112) 64.85/17.64 Obligation: 64.85/17.64 TRS: 64.85/17.64 Rules: 64.85/17.64 active(U101(tt, V1, V2)) -> mark(U102(isNatural(V1), V2)) 64.85/17.64 active(U102(tt, V2)) -> mark(U103(isLNat(V2))) 64.85/17.64 active(U103(tt)) -> mark(tt) 64.85/17.64 active(U11(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 64.85/17.64 active(U111(tt, V1)) -> mark(U112(isLNat(V1))) 64.85/17.64 active(U112(tt)) -> mark(tt) 64.85/17.64 active(U121(tt, V1)) -> mark(U122(isNatural(V1))) 64.85/17.64 active(U122(tt)) -> mark(tt) 64.85/17.64 active(U131(tt, V1, V2)) -> mark(U132(isNatural(V1), V2)) 64.85/17.64 active(U132(tt, V2)) -> mark(U133(isLNat(V2))) 64.85/17.64 active(U133(tt)) -> mark(tt) 64.85/17.64 active(U141(tt, V1, V2)) -> mark(U142(isLNat(V1), V2)) 64.85/17.64 active(U142(tt, V2)) -> mark(U143(isLNat(V2))) 64.85/17.64 active(U143(tt)) -> mark(tt) 64.85/17.64 active(U151(tt, V1, V2)) -> mark(U152(isNatural(V1), V2)) 64.85/17.64 active(U152(tt, V2)) -> mark(U153(isLNat(V2))) 64.85/17.64 active(U153(tt)) -> mark(tt) 64.85/17.64 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 64.85/17.64 active(U171(tt, N, XS)) -> mark(head(afterNth(N, XS))) 64.85/17.64 active(U181(tt, Y)) -> mark(Y) 64.85/17.64 active(U191(tt, XS)) -> mark(pair(nil, XS)) 64.85/17.64 active(U201(tt, N, X, XS)) -> mark(U202(splitAt(N, XS), X)) 64.85/17.64 active(U202(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 64.85/17.64 active(U21(tt, X)) -> mark(X) 64.85/17.64 active(U211(tt, XS)) -> mark(XS) 64.85/17.64 active(U221(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 64.85/17.64 active(U31(tt, N)) -> mark(N) 64.85/17.64 active(U41(tt, V1, V2)) -> mark(U42(isNatural(V1), V2)) 64.85/17.64 active(U42(tt, V2)) -> mark(U43(isLNat(V2))) 64.85/17.64 active(U43(tt)) -> mark(tt) 64.85/17.64 active(U51(tt, V1, V2)) -> mark(U52(isNatural(V1), V2)) 64.85/17.64 active(U52(tt, V2)) -> mark(U53(isLNat(V2))) 64.85/17.64 active(U53(tt)) -> mark(tt) 64.85/17.64 active(U61(tt, V1)) -> mark(U62(isPLNat(V1))) 64.85/17.64 active(U62(tt)) -> mark(tt) 64.85/17.64 active(U71(tt, V1)) -> mark(U72(isNatural(V1))) 64.85/17.64 active(U72(tt)) -> mark(tt) 64.85/17.64 active(U81(tt, V1)) -> mark(U82(isPLNat(V1))) 64.85/17.64 active(U82(tt)) -> mark(tt) 64.85/17.64 active(U91(tt, V1)) -> mark(U92(isLNat(V1))) 64.85/17.64 active(U92(tt)) -> mark(tt) 64.85/17.64 active(afterNth(N, XS)) -> mark(U11(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(and(tt, X)) -> mark(X) 64.85/17.64 active(fst(pair(X, Y))) -> mark(U21(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), X)) 64.85/17.64 active(head(cons(N, XS))) -> mark(U31(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N)) 64.85/17.64 active(isLNat(nil)) -> mark(tt) 64.85/17.64 active(isLNat(afterNth(V1, V2))) -> mark(U41(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNat(cons(V1, V2))) -> mark(U51(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNat(fst(V1))) -> mark(U61(isPLNatKind(V1), V1)) 64.85/17.64 active(isLNat(natsFrom(V1))) -> mark(U71(isNaturalKind(V1), V1)) 64.85/17.64 active(isLNat(snd(V1))) -> mark(U81(isPLNatKind(V1), V1)) 64.85/17.64 active(isLNat(tail(V1))) -> mark(U91(isLNatKind(V1), V1)) 64.85/17.64 active(isLNat(take(V1, V2))) -> mark(U101(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isLNatKind(nil)) -> mark(tt) 64.85/17.64 active(isLNatKind(afterNth(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isLNatKind(cons(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isLNatKind(fst(V1))) -> mark(isPLNatKind(V1)) 64.85/17.64 active(isLNatKind(natsFrom(V1))) -> mark(isNaturalKind(V1)) 64.85/17.64 active(isLNatKind(snd(V1))) -> mark(isPLNatKind(V1)) 64.85/17.64 active(isLNatKind(tail(V1))) -> mark(isLNatKind(V1)) 64.85/17.64 active(isLNatKind(take(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isNatural(0')) -> mark(tt) 64.85/17.64 active(isNatural(head(V1))) -> mark(U111(isLNatKind(V1), V1)) 64.85/17.64 active(isNatural(s(V1))) -> mark(U121(isNaturalKind(V1), V1)) 64.85/17.64 active(isNatural(sel(V1, V2))) -> mark(U131(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isNaturalKind(0')) -> mark(tt) 64.85/17.64 active(isNaturalKind(head(V1))) -> mark(isLNatKind(V1)) 64.85/17.64 active(isNaturalKind(s(V1))) -> mark(isNaturalKind(V1)) 64.85/17.64 active(isNaturalKind(sel(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(isPLNat(pair(V1, V2))) -> mark(U141(and(isLNatKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isPLNat(splitAt(V1, V2))) -> mark(U151(and(isNaturalKind(V1), isLNatKind(V2)), V1, V2)) 64.85/17.64 active(isPLNatKind(pair(V1, V2))) -> mark(and(isLNatKind(V1), isLNatKind(V2))) 64.85/17.64 active(isPLNatKind(splitAt(V1, V2))) -> mark(and(isNaturalKind(V1), isLNatKind(V2))) 64.85/17.64 active(natsFrom(N)) -> mark(U161(and(isNatural(N), isNaturalKind(N)), N)) 64.85/17.64 active(sel(N, XS)) -> mark(U171(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(snd(pair(X, Y))) -> mark(U181(and(and(isLNat(X), isLNatKind(X)), and(isLNat(Y), isLNatKind(Y))), Y)) 64.85/17.64 active(splitAt(0', XS)) -> mark(U191(and(isLNat(XS), isLNatKind(XS)), XS)) 64.85/17.64 active(splitAt(s(N), cons(X, XS))) -> mark(U201(and(and(isNatural(N), isNaturalKind(N)), and(and(isNatural(X), isNaturalKind(X)), and(isLNat(XS), isLNatKind(XS)))), N, X, XS)) 64.85/17.64 active(tail(cons(N, XS))) -> mark(U211(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), XS)) 64.85/17.64 active(take(N, XS)) -> mark(U221(and(and(isNatural(N), isNaturalKind(N)), and(isLNat(XS), isLNatKind(XS))), N, XS)) 64.85/17.64 active(U101(X1, X2, X3)) -> U101(active(X1), X2, X3) 64.85/17.64 active(U102(X1, X2)) -> U102(active(X1), X2) 64.85/17.64 active(U103(X)) -> U103(active(X)) 64.85/17.64 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 64.85/17.64 active(snd(X)) -> snd(active(X)) 64.85/17.64 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 64.85/17.64 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 64.85/17.64 active(U111(X1, X2)) -> U111(active(X1), X2) 64.85/17.64 active(U112(X)) -> U112(active(X)) 64.85/17.64 active(U121(X1, X2)) -> U121(active(X1), X2) 64.85/17.64 active(U122(X)) -> U122(active(X)) 64.85/17.64 active(U131(X1, X2, X3)) -> U131(active(X1), X2, X3) 64.85/17.64 active(U132(X1, X2)) -> U132(active(X1), X2) 64.85/17.64 active(U133(X)) -> U133(active(X)) 64.85/17.64 active(U141(X1, X2, X3)) -> U141(active(X1), X2, X3) 64.85/17.64 active(U142(X1, X2)) -> U142(active(X1), X2) 64.85/17.64 active(U143(X)) -> U143(active(X)) 64.85/17.64 active(U151(X1, X2, X3)) -> U151(active(X1), X2, X3) 64.85/17.64 active(U152(X1, X2)) -> U152(active(X1), X2) 64.85/17.64 active(U153(X)) -> U153(active(X)) 64.85/17.64 active(U161(X1, X2)) -> U161(active(X1), X2) 64.85/17.64 active(cons(X1, X2)) -> cons(active(X1), X2) 64.85/17.64 active(natsFrom(X)) -> natsFrom(active(X)) 64.85/17.64 active(s(X)) -> s(active(X)) 64.85/17.64 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 64.85/17.64 active(head(X)) -> head(active(X)) 64.85/17.64 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 64.85/17.64 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 64.85/17.64 active(U181(X1, X2)) -> U181(active(X1), X2) 64.85/17.64 active(U191(X1, X2)) -> U191(active(X1), X2) 64.85/17.64 active(pair(X1, X2)) -> pair(active(X1), X2) 64.85/17.64 active(pair(X1, X2)) -> pair(X1, active(X2)) 64.85/17.64 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 64.85/17.64 active(U202(X1, X2)) -> U202(active(X1), X2) 64.85/17.64 active(U21(X1, X2)) -> U21(active(X1), X2) 64.85/17.64 active(U211(X1, X2)) -> U211(active(X1), X2) 64.85/17.64 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 64.85/17.64 active(fst(X)) -> fst(active(X)) 64.85/17.64 active(U31(X1, X2)) -> U31(active(X1), X2) 64.85/17.64 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 64.85/17.64 active(U42(X1, X2)) -> U42(active(X1), X2) 64.85/17.64 active(U43(X)) -> U43(active(X)) 64.85/17.64 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 64.85/17.64 active(U52(X1, X2)) -> U52(active(X1), X2) 64.85/17.64 active(U53(X)) -> U53(active(X)) 64.85/17.64 active(U61(X1, X2)) -> U61(active(X1), X2) 64.85/17.64 active(U62(X)) -> U62(active(X)) 64.85/17.64 active(U71(X1, X2)) -> U71(active(X1), X2) 64.85/17.64 active(U72(X)) -> U72(active(X)) 64.85/17.64 active(U81(X1, X2)) -> U81(active(X1), X2) 64.85/17.64 active(U82(X)) -> U82(active(X)) 64.85/17.64 active(U91(X1, X2)) -> U91(active(X1), X2) 64.85/17.64 active(U92(X)) -> U92(active(X)) 64.85/17.64 active(and(X1, X2)) -> and(active(X1), X2) 64.85/17.64 active(tail(X)) -> tail(active(X)) 64.85/17.64 active(take(X1, X2)) -> take(active(X1), X2) 64.85/17.64 active(take(X1, X2)) -> take(X1, active(X2)) 64.85/17.64 active(sel(X1, X2)) -> sel(active(X1), X2) 64.85/17.64 active(sel(X1, X2)) -> sel(X1, active(X2)) 64.85/17.64 U101(mark(X1), X2, X3) -> mark(U101(X1, X2, X3)) 64.85/17.64 U102(mark(X1), X2) -> mark(U102(X1, X2)) 64.85/17.64 U103(mark(X)) -> mark(U103(X)) 64.85/17.64 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 64.85/17.64 snd(mark(X)) -> mark(snd(X)) 64.85/17.64 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 64.85/17.64 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 64.85/17.64 U111(mark(X1), X2) -> mark(U111(X1, X2)) 64.85/17.64 U112(mark(X)) -> mark(U112(X)) 64.85/17.64 U121(mark(X1), X2) -> mark(U121(X1, X2)) 64.85/17.64 U122(mark(X)) -> mark(U122(X)) 64.85/17.64 U131(mark(X1), X2, X3) -> mark(U131(X1, X2, X3)) 64.85/17.64 U132(mark(X1), X2) -> mark(U132(X1, X2)) 64.85/17.64 U133(mark(X)) -> mark(U133(X)) 64.85/17.64 U141(mark(X1), X2, X3) -> mark(U141(X1, X2, X3)) 64.85/17.64 U142(mark(X1), X2) -> mark(U142(X1, X2)) 64.85/17.64 U143(mark(X)) -> mark(U143(X)) 64.85/17.64 U151(mark(X1), X2, X3) -> mark(U151(X1, X2, X3)) 64.85/17.64 U152(mark(X1), X2) -> mark(U152(X1, X2)) 64.85/17.64 U153(mark(X)) -> mark(U153(X)) 64.85/17.64 U161(mark(X1), X2) -> mark(U161(X1, X2)) 64.85/17.64 cons(mark(X1), X2) -> mark(cons(X1, X2)) 64.85/17.64 natsFrom(mark(X)) -> mark(natsFrom(X)) 64.85/17.64 s(mark(X)) -> mark(s(X)) 64.85/17.64 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 64.85/17.64 head(mark(X)) -> mark(head(X)) 64.85/17.64 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 64.85/17.64 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 64.85/17.64 U181(mark(X1), X2) -> mark(U181(X1, X2)) 64.85/17.64 U191(mark(X1), X2) -> mark(U191(X1, X2)) 64.85/17.64 pair(mark(X1), X2) -> mark(pair(X1, X2)) 64.85/17.64 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 64.85/17.64 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 64.85/17.64 U202(mark(X1), X2) -> mark(U202(X1, X2)) 64.85/17.64 U21(mark(X1), X2) -> mark(U21(X1, X2)) 64.85/17.64 U211(mark(X1), X2) -> mark(U211(X1, X2)) 64.85/17.64 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 64.85/17.64 fst(mark(X)) -> mark(fst(X)) 64.85/17.64 U31(mark(X1), X2) -> mark(U31(X1, X2)) 64.85/17.64 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 64.85/17.64 U42(mark(X1), X2) -> mark(U42(X1, X2)) 64.85/17.64 U43(mark(X)) -> mark(U43(X)) 64.85/17.64 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 64.85/17.64 U52(mark(X1), X2) -> mark(U52(X1, X2)) 64.85/17.64 U53(mark(X)) -> mark(U53(X)) 64.85/17.64 U61(mark(X1), X2) -> mark(U61(X1, X2)) 64.85/17.64 U62(mark(X)) -> mark(U62(X)) 64.85/17.64 U71(mark(X1), X2) -> mark(U71(X1, X2)) 64.85/17.64 U72(mark(X)) -> mark(U72(X)) 64.85/17.64 U81(mark(X1), X2) -> mark(U81(X1, X2)) 64.85/17.64 U82(mark(X)) -> mark(U82(X)) 64.85/17.64 U91(mark(X1), X2) -> mark(U91(X1, X2)) 64.85/17.64 U92(mark(X)) -> mark(U92(X)) 64.85/17.64 and(mark(X1), X2) -> mark(and(X1, X2)) 64.85/17.64 tail(mark(X)) -> mark(tail(X)) 64.85/17.64 take(mark(X1), X2) -> mark(take(X1, X2)) 64.85/17.64 take(X1, mark(X2)) -> mark(take(X1, X2)) 64.85/17.64 sel(mark(X1), X2) -> mark(sel(X1, X2)) 64.85/17.64 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 64.85/17.64 proper(U101(X1, X2, X3)) -> U101(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(tt) -> ok(tt) 64.85/17.64 proper(U102(X1, X2)) -> U102(proper(X1), proper(X2)) 64.85/17.64 proper(isNatural(X)) -> isNatural(proper(X)) 64.85/17.64 proper(U103(X)) -> U103(proper(X)) 64.85/17.64 proper(isLNat(X)) -> isLNat(proper(X)) 64.85/17.64 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(snd(X)) -> snd(proper(X)) 64.85/17.64 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 64.85/17.64 proper(U111(X1, X2)) -> U111(proper(X1), proper(X2)) 64.85/17.64 proper(U112(X)) -> U112(proper(X)) 64.85/17.64 proper(U121(X1, X2)) -> U121(proper(X1), proper(X2)) 64.85/17.64 proper(U122(X)) -> U122(proper(X)) 64.85/17.64 proper(U131(X1, X2, X3)) -> U131(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U132(X1, X2)) -> U132(proper(X1), proper(X2)) 64.85/17.64 proper(U133(X)) -> U133(proper(X)) 64.85/17.64 proper(U141(X1, X2, X3)) -> U141(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U142(X1, X2)) -> U142(proper(X1), proper(X2)) 64.85/17.64 proper(U143(X)) -> U143(proper(X)) 64.85/17.64 proper(U151(X1, X2, X3)) -> U151(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U152(X1, X2)) -> U152(proper(X1), proper(X2)) 64.85/17.64 proper(U153(X)) -> U153(proper(X)) 64.85/17.64 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 64.85/17.64 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 64.85/17.64 proper(natsFrom(X)) -> natsFrom(proper(X)) 64.85/17.64 proper(s(X)) -> s(proper(X)) 64.85/17.64 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(head(X)) -> head(proper(X)) 64.85/17.64 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 64.85/17.64 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 64.85/17.64 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 64.85/17.64 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 64.85/17.64 proper(nil) -> ok(nil) 64.85/17.64 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 64.85/17.64 proper(U202(X1, X2)) -> U202(proper(X1), proper(X2)) 64.85/17.64 proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)) 64.85/17.64 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 64.85/17.64 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(fst(X)) -> fst(proper(X)) 64.85/17.64 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 64.85/17.64 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 64.85/17.64 proper(U43(X)) -> U43(proper(X)) 64.85/17.64 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 64.85/17.64 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 64.85/17.64 proper(U53(X)) -> U53(proper(X)) 64.85/17.64 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 64.85/17.64 proper(U62(X)) -> U62(proper(X)) 64.85/17.64 proper(isPLNat(X)) -> isPLNat(proper(X)) 64.85/17.64 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 64.85/17.64 proper(U72(X)) -> U72(proper(X)) 64.85/17.64 proper(U81(X1, X2)) -> U81(proper(X1), proper(X2)) 64.85/17.64 proper(U82(X)) -> U82(proper(X)) 64.85/17.64 proper(U91(X1, X2)) -> U91(proper(X1), proper(X2)) 64.85/17.64 proper(U92(X)) -> U92(proper(X)) 64.85/17.64 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 64.85/17.64 proper(isNaturalKind(X)) -> isNaturalKind(proper(X)) 64.85/17.64 proper(isLNatKind(X)) -> isLNatKind(proper(X)) 64.85/17.64 proper(isPLNatKind(X)) -> isPLNatKind(proper(X)) 64.85/17.64 proper(tail(X)) -> tail(proper(X)) 64.85/17.64 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 64.85/17.64 proper(0') -> ok(0') 64.85/17.64 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 64.85/17.64 U101(ok(X1), ok(X2), ok(X3)) -> ok(U101(X1, X2, X3)) 64.85/17.64 U102(ok(X1), ok(X2)) -> ok(U102(X1, X2)) 64.85/17.64 isNatural(ok(X)) -> ok(isNatural(X)) 64.85/17.64 U103(ok(X)) -> ok(U103(X)) 64.85/17.64 isLNat(ok(X)) -> ok(isLNat(X)) 64.85/17.64 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 64.85/17.64 snd(ok(X)) -> ok(snd(X)) 64.85/17.64 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 64.85/17.64 U111(ok(X1), ok(X2)) -> ok(U111(X1, X2)) 64.85/17.64 U112(ok(X)) -> ok(U112(X)) 64.85/17.64 U121(ok(X1), ok(X2)) -> ok(U121(X1, X2)) 64.85/17.64 U122(ok(X)) -> ok(U122(X)) 64.85/17.64 U131(ok(X1), ok(X2), ok(X3)) -> ok(U131(X1, X2, X3)) 64.85/17.64 U132(ok(X1), ok(X2)) -> ok(U132(X1, X2)) 64.85/17.64 U133(ok(X)) -> ok(U133(X)) 64.85/17.64 U141(ok(X1), ok(X2), ok(X3)) -> ok(U141(X1, X2, X3)) 64.85/17.64 U142(ok(X1), ok(X2)) -> ok(U142(X1, X2)) 64.85/17.64 U143(ok(X)) -> ok(U143(X)) 64.85/17.64 U151(ok(X1), ok(X2), ok(X3)) -> ok(U151(X1, X2, X3)) 64.85/17.64 U152(ok(X1), ok(X2)) -> ok(U152(X1, X2)) 64.85/17.64 U153(ok(X)) -> ok(U153(X)) 64.85/17.64 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 64.85/17.64 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 64.85/17.64 natsFrom(ok(X)) -> ok(natsFrom(X)) 64.85/17.64 s(ok(X)) -> ok(s(X)) 64.85/17.64 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 64.85/17.64 head(ok(X)) -> ok(head(X)) 64.85/17.64 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 64.85/17.64 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 64.85/17.64 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 64.85/17.64 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 64.85/17.64 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 64.85/17.64 U202(ok(X1), ok(X2)) -> ok(U202(X1, X2)) 64.85/17.64 U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)) 64.85/17.64 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 64.85/17.64 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 64.85/17.64 fst(ok(X)) -> ok(fst(X)) 64.85/17.64 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 64.85/17.64 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 64.85/17.64 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 64.85/17.64 U43(ok(X)) -> ok(U43(X)) 64.85/17.64 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 64.85/17.64 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 64.85/17.64 U53(ok(X)) -> ok(U53(X)) 64.85/17.64 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 64.85/17.64 U62(ok(X)) -> ok(U62(X)) 64.85/17.64 isPLNat(ok(X)) -> ok(isPLNat(X)) 64.85/17.64 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 64.85/17.64 U72(ok(X)) -> ok(U72(X)) 64.85/17.64 U81(ok(X1), ok(X2)) -> ok(U81(X1, X2)) 64.85/17.64 U82(ok(X)) -> ok(U82(X)) 64.85/17.64 U91(ok(X1), ok(X2)) -> ok(U91(X1, X2)) 64.85/17.64 U92(ok(X)) -> ok(U92(X)) 64.85/17.64 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 64.85/17.64 isNaturalKind(ok(X)) -> ok(isNaturalKind(X)) 64.85/17.64 isLNatKind(ok(X)) -> ok(isLNatKind(X)) 64.85/17.64 isPLNatKind(ok(X)) -> ok(isPLNatKind(X)) 64.85/17.64 tail(ok(X)) -> ok(tail(X)) 64.85/17.64 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 64.85/17.64 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 64.85/17.64 top(mark(X)) -> top(proper(X)) 64.85/17.64 top(ok(X)) -> top(active(X)) 64.85/17.64 64.85/17.64 Types: 64.85/17.64 active :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U101 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 tt :: tt:mark:nil:0':ok 64.85/17.64 mark :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U102 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isNatural :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U103 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U11 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 snd :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 splitAt :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U111 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U112 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U121 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U122 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U131 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U132 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U133 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U141 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U142 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U143 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U151 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U152 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U153 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U161 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 cons :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 natsFrom :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 s :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U171 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 head :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 afterNth :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U181 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U191 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 pair :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 nil :: tt:mark:nil:0':ok 64.85/17.64 U201 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U202 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U21 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U211 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U221 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 fst :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U31 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U41 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U42 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U43 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U51 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U52 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U53 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U61 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U62 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isPLNat :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U71 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U72 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U81 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U82 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U91 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 U92 :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 and :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isNaturalKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 isPLNatKind :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 tail :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 take :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 0' :: tt:mark:nil:0':ok 64.85/17.64 sel :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 proper :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 ok :: tt:mark:nil:0':ok -> tt:mark:nil:0':ok 64.85/17.64 top :: tt:mark:nil:0':ok -> top 64.85/17.64 hole_tt:mark:nil:0':ok1_0 :: tt:mark:nil:0':ok 64.85/17.64 hole_top2_0 :: top 64.85/17.64 gen_tt:mark:nil:0':ok3_0 :: Nat -> tt:mark:nil:0':ok 64.85/17.64 64.85/17.64 64.85/17.64 Lemmas: 64.85/17.64 U102(gen_tt:mark:nil:0':ok3_0(+(1, n5_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n5_0) 64.85/17.64 U103(gen_tt:mark:nil:0':ok3_0(+(1, n4971_0))) -> *4_0, rt in Omega(n4971_0) 64.85/17.64 snd(gen_tt:mark:nil:0':ok3_0(+(1, n6369_0))) -> *4_0, rt in Omega(n6369_0) 64.85/17.64 splitAt(gen_tt:mark:nil:0':ok3_0(+(1, n7856_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n7856_0) 64.85/17.64 U112(gen_tt:mark:nil:0':ok3_0(+(1, n13734_0))) -> *4_0, rt in Omega(n13734_0) 64.85/17.64 U122(gen_tt:mark:nil:0':ok3_0(+(1, n15472_0))) -> *4_0, rt in Omega(n15472_0) 64.85/17.64 U132(gen_tt:mark:nil:0':ok3_0(+(1, n17311_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n17311_0) 64.85/17.64 U133(gen_tt:mark:nil:0':ok3_0(+(1, n23712_0))) -> *4_0, rt in Omega(n23712_0) 64.85/17.64 U142(gen_tt:mark:nil:0':ok3_0(+(1, n25802_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n25802_0) 64.85/17.64 U143(gen_tt:mark:nil:0':ok3_0(+(1, n32717_0))) -> *4_0, rt in Omega(n32717_0) 64.85/17.64 U152(gen_tt:mark:nil:0':ok3_0(+(1, n35058_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n35058_0) 64.85/17.64 U153(gen_tt:mark:nil:0':ok3_0(+(1, n42487_0))) -> *4_0, rt in Omega(n42487_0) 64.85/17.64 cons(gen_tt:mark:nil:0':ok3_0(+(1, n45079_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n45079_0) 64.85/17.64 natsFrom(gen_tt:mark:nil:0':ok3_0(+(1, n53022_0))) -> *4_0, rt in Omega(n53022_0) 64.85/17.64 s(gen_tt:mark:nil:0':ok3_0(+(1, n55865_0))) -> *4_0, rt in Omega(n55865_0) 64.85/17.64 head(gen_tt:mark:nil:0':ok3_0(+(1, n58809_0))) -> *4_0, rt in Omega(n58809_0) 64.85/17.64 afterNth(gen_tt:mark:nil:0':ok3_0(+(1, n61854_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n61854_0) 64.85/17.64 pair(gen_tt:mark:nil:0':ok3_0(+(1, n70926_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n70926_0) 64.85/17.64 U202(gen_tt:mark:nil:0':ok3_0(+(1, n80304_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n80304_0) 64.85/17.64 fst(gen_tt:mark:nil:0':ok3_0(+(1, n89789_0))) -> *4_0, rt in Omega(n89789_0) 64.85/17.64 U42(gen_tt:mark:nil:0':ok3_0(+(1, n93385_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n93385_0) 64.85/17.64 U43(gen_tt:mark:nil:0':ok3_0(+(1, n103384_0))) -> *4_0, rt in Omega(n103384_0) 64.85/17.64 U52(gen_tt:mark:nil:0':ok3_0(+(1, n107231_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n107231_0) 64.85/17.64 U53(gen_tt:mark:nil:0':ok3_0(+(1, n117744_0))) -> *4_0, rt in Omega(n117744_0) 64.85/17.64 U62(gen_tt:mark:nil:0':ok3_0(+(1, n121842_0))) -> *4_0, rt in Omega(n121842_0) 64.85/17.64 U72(gen_tt:mark:nil:0':ok3_0(+(1, n126142_0))) -> *4_0, rt in Omega(n126142_0) 64.85/17.64 U82(gen_tt:mark:nil:0':ok3_0(+(1, n130442_0))) -> *4_0, rt in Omega(n130442_0) 64.85/17.64 U92(gen_tt:mark:nil:0':ok3_0(+(1, n134843_0))) -> *4_0, rt in Omega(n134843_0) 64.85/17.64 U11(gen_tt:mark:nil:0':ok3_0(+(1, n139345_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n139345_0) 64.85/17.64 and(gen_tt:mark:nil:0':ok3_0(+(1, n158460_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n158460_0) 64.85/17.64 U21(gen_tt:mark:nil:0':ok3_0(+(1, n170967_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n170967_0) 64.85/17.64 U31(gen_tt:mark:nil:0':ok3_0(+(1, n183536_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n183536_0) 64.85/17.64 U41(gen_tt:mark:nil:0':ok3_0(+(1, n196411_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n196411_0) 64.85/17.64 U51(gen_tt:mark:nil:0':ok3_0(+(1, n217521_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n217521_0) 64.85/17.64 U61(gen_tt:mark:nil:0':ok3_0(+(1, n239240_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n239240_0) 64.85/17.64 U71(gen_tt:mark:nil:0':ok3_0(+(1, n253380_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n253380_0) 64.85/17.64 U81(gen_tt:mark:nil:0':ok3_0(+(1, n267675_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n267675_0) 64.85/17.64 U91(gen_tt:mark:nil:0':ok3_0(+(1, n282276_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n282276_0) 64.85/17.64 U101(gen_tt:mark:nil:0':ok3_0(+(1, n297183_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n297183_0) 64.85/17.64 U111(gen_tt:mark:nil:0':ok3_0(+(1, n321359_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n321359_0) 64.85/17.64 U121(gen_tt:mark:nil:0':ok3_0(+(1, n336976_0)), gen_tt:mark:nil:0':ok3_0(b)) -> *4_0, rt in Omega(n336976_0) 64.85/17.64 U131(gen_tt:mark:nil:0':ok3_0(+(1, n352899_0)), gen_tt:mark:nil:0':ok3_0(b), gen_tt:mark:nil:0':ok3_0(c)) -> *4_0, rt in Omega(n352899_0) 64.85/17.64 64.85/17.64 64.85/17.64 Generator Equations: 64.85/17.64 gen_tt:mark:nil:0':ok3_0(0) <=> tt 64.85/17.64 gen_tt:mark:nil:0':ok3_0(+(x, 1)) <=> mark(gen_tt:mark:nil:0':ok3_0(x)) 64.85/17.64 64.85/17.64 64.85/17.64 The following defined symbols remain to be analysed: 64.85/17.64 U141, active, U151, U161, U171, U181, U191, U201, U211, U221, tail, take, sel, proper, top 64.85/17.64 64.85/17.64 They will be analysed ascendingly in the following order: 64.85/17.64 U141 < active 64.85/17.64 U151 < active 64.85/17.64 U161 < active 64.85/17.64 U171 < active 64.85/17.64 U181 < active 64.85/17.64 U191 < active 64.85/17.64 U201 < active 64.85/17.64 U211 < active 64.85/17.64 U221 < active 64.85/17.64 tail < active 64.85/17.64 take < active 64.85/17.64 sel < active 64.85/17.64 active < top 64.85/17.64 U141 < proper 64.85/17.64 U151 < proper 64.85/17.64 U161 < proper 64.85/17.64 U171 < proper 64.85/17.64 U181 < proper 64.85/17.64 U191 < proper 64.85/17.64 U201 < proper 64.85/17.64 U211 < proper 64.85/17.64 U221 < proper 64.85/17.64 tail < proper 64.85/17.64 take < proper 64.85/17.64 sel < proper 64.85/17.64 proper < top 64.93/17.68 EOF